What is “null pointer assignment error”?

后端 未结 5 1443
野趣味
野趣味 2021-02-04 09:33

One of job interview questions on C pointers here is the following: what is null pointer assignment error?

I\'ve googled for a while and don\'t see any reasonab

5条回答
  •  被撕碎了的回忆
    2021-02-04 10:08

    http://www.faqs.org/qa/qa-3786.html

    A NULL pointer assignment is a runtime error It occurs due to various reasons one is that your program has tried to access an illegal memory location. Illegal location means either the location is in the operating systems address space or in the other processes memory space. In stdio.h NULL is defined as 0 So whenever your program tries to access 0th location the operating system kills your program with runtime assignment error because the 0th location is in the operating systems address space and operating system doesn't allow access to its address space by user program .

    Example code:

    int* ptr = NULL;  
    *ptr = 3;
    

    Explanation:
    On almost every system, address 0 is reserved. System won't allow you to write to that location. If you try, you will get a runtime exception (access violation, segmentation fault, etc.).

提交回复
热议问题