当前位置:酷百书>百科知识>null是代表什么?求解

null是代表什么?求解

2023-04-24 10:06:33 编辑:join 浏览量:575

null是代表什么?求解

null是代表什么?求解

一个指针,除非本身等于NULL,否则free以后不会等于NULL。因为free不对指针的值做任何操作,而只是试图改变指针指向的一片连续的存储器空间的状态。如果这片存储器空间是malloc或其它兼容方式(例如POSIX库函数strdup)分配过来的,那么会释放这片空间,释放的空间可以之后再次被分配。如果指针本来就等于NULL,则调用free不会有任何作用。除以上两种情况外(包括再次free已经被free过的非空指针),free的行为是未定义的,比较有可能的是free这个指针进程在某个时刻突然莫名其妙地崩溃。int*p;free(p);这段代码如果是连续的,只能在函数内出现,那么int*p;是局部自动变量,不会隐式初始化为0(NULL)。未初始化的变量的值是不确定的(一般运气不会好到就是0;例如MicrosoftVisualDebugger会在Debug模式下给未初始化的栈每个字节填充0xcc,根本不可能是0),直接free的后果不可预料。为了防止错误地free掉已经被释放的指针,建议free某个指针之后立刻把这个指针赋值为NULL。====[原创回答团]参考资料:原创

标签:null,求解,代表

版权声明:文章由 酷百书 整理收集,来源于互联网或者用户投稿,如有侵权,请联系我们,我们会立即处理。如转载请保留本文链接:https://www.kubaishu.com/article/213579.html
热门文章