Segmentation Fault doesn't come up immediately after accessing out-of-bound memory

后端 未结 5 996
旧时难觅i
旧时难觅i 2020-12-20 11:51

I wrote this piece of code and was expecting a segmentation fault quicly, but it seems I am allowed to access pieces of memory I shouldn\'t be able to.

#inc         


        
5条回答
  •  离开以前
    2020-12-20 12:13

    When you're using out-of-bound memory, you'll be facing Undefined behavior. You cannot define something called Undefined behavior.

    In your case, it is happening at i = 1000s, in others' case it may very well happen at i=347 or so..

    Segmentation fault is the result of accessing memory outside the allowed stack address space of your program. it may run properly and surprise you with apparent proper working if you finish your execution within that memory range. an out-of-bound access may produce vaild memory access till the point you're not crossing the stack memory region.

    Consider yourself lucky if you get a segmentation fault, because that tells you, something's wrong. Otherwise, you have no idea of the resulting horror.

    Note: as a suggestion, the question title should be changed to .. comes up very late or something simmilar

提交回复
热议问题