当前位置 博文首页 > Allen Roson:指针使用注意事项
错误代码
Func2()返回了局部变量数组的地址,结果并没有输出hello
?
下面的代码没有使用free释放
?
释放动态数组时,使用delete[ ] arr;即在数组名前加上一个中括弧;例如
delete [ ] arr;
? ? ? 释放一个动态数组时,或者说是指向数组的指针时,中括号是必须的。它告诉编译器,指针指向一个数组的第一个元素。
delete释放数组是逆序进行的,最后一个元素被最先释放,第一个元素最后一个被释放。
?
?
不正确的初始化,赋值为NULL后直接调用字符串拷贝函数,造成崩溃。
?
某一行释放了指针,释放后ptr不为NULL:
delete ptr;
?
过了几十行代码,又作如下判断
if(NULL != ptr)
{
??? delete ptr;
}
造成崩溃
cs