新手求解 关于c++中的空指针的有关问题
新手求解 关于c++中的空指针的问题
新手自学c++,遇到关于一个空指针相关的问题,初始化为0的空指针、或者是delete之后设置为空的指针,这样的指针还能再使用吗?还能给指针重新赋值吗 ?
------解决思路----------------------
能啊, 不过既然之前的内存被释放了, 那么你要重新分配内存给它, 才能再次使用
------解决思路----------------------
当然可以,指针就是变量的一种
------解决思路----------------------
当然了,指针变量就是变量了,自然可以作为左值被赋值:
------解决思路----------------------
当然可以
delete指针 是释放指针指向的空间 和指针无关
------解决思路----------------------
可以再次使用,指针并不神秘,只需要注意不要产生野指针
------解决思路----------------------
指针也是一个变量, 只要没指定为常量, 就是可以随意重新赋值的.
------解决思路----------------------
你delete之后,只是把内存释放了而已 你定义的是全局的,当然可以再用,直到到达生命周期结束 才不能用
------解决思路----------------------
空指针或者指针被置空之后,它的值是一个无效地址值,是不能被使用的;如果在指针的变量域中对指针赋以一块有效内存的地址(无论该内存是从栈上还是堆上申请),该指针就可以继续使用。其实根本的问题是指针保存的地址值是否为有效地址,指针本身也是一个变量。
新手自学c++,遇到关于一个空指针相关的问题,初始化为0的空指针、或者是delete之后设置为空的指针,这样的指针还能再使用吗?还能给指针重新赋值吗 ?
------解决思路----------------------
能啊, 不过既然之前的内存被释放了, 那么你要重新分配内存给它, 才能再次使用
------解决思路----------------------
当然可以,指针就是变量的一种
------解决思路----------------------
当然了,指针变量就是变量了,自然可以作为左值被赋值:
int * p = nullptr;// initilize when declare
p = new int(10); //point to a new address
cout << *p << endl; //dump the memory value
delete p; //pointer p is hung up now
p = nullptr; //safe
p = new int(88); //point to another address now
//...
------解决思路----------------------
当然可以
delete指针 是释放指针指向的空间 和指针无关
------解决思路----------------------
可以再次使用,指针并不神秘,只需要注意不要产生野指针
------解决思路----------------------
指针也是一个变量, 只要没指定为常量, 就是可以随意重新赋值的.
------解决思路----------------------
你delete之后,只是把内存释放了而已 你定义的是全局的,当然可以再用,直到到达生命周期结束 才不能用
------解决思路----------------------
空指针或者指针被置空之后,它的值是一个无效地址值,是不能被使用的;如果在指针的变量域中对指针赋以一块有效内存的地址(无论该内存是从栈上还是堆上申请),该指针就可以继续使用。其实根本的问题是指针保存的地址值是否为有效地址,指针本身也是一个变量。