如何将值赋给指向NULL的指针

Xai*_*anX 1 c++

我有一个指向null的指针,我想为它赋值.但如果我尊重它,我会得到一个错误.我试过这个:

*nullPointer=value;
Run Code Online (Sandbox Code Playgroud)

但就像我说的,我收到了一个错误.我怎样才能做到这一点?.我做不到

nullPointer=&value
Run Code Online (Sandbox Code Playgroud)

因为后来的值(它是一个对象)被删除,而nullPointer将指向无效的内存.

Alo*_*ave 7

指针必须指向有效对象才能有意义,并且您有责任确保它指向的对象保持有效.

如果它指向的对象在堆栈上,并且在其作用域结束后变为无效您应该使用动态内存在堆上分配对象.然而,知道你在做什么以及你是否需要这些信息的信息太少了.

int *ptr = new int;
*ptr = value;
...
...
delete ptr;
Run Code Online (Sandbox Code Playgroud)


sla*_*ton 5

指针指的是内存 (RAM) 中的位置。当你有 a 时,null pointer它指向 null,这意味着它不指向内存中的位置。只要指针为空,它就不能用于存储任何信息,因为没有内存支持它。

要使用空指针,必须首先分配内存,然后让指针指向新分配的内存。

*int p = null;    
*p = 10; //this won't work as there is no memory backing up this pointer
p = new int;
*p = 10;
Run Code Online (Sandbox Code Playgroud)

  • *“不能将值赋给指向空的指针。”*——这不是最好的措辞。指针不能指向 null;它可以是 null(空指针,`NULL`),正如您所说,这意味着它不指向任何东西。你当然可以给空指针赋值;你只是不能给它指向的对象赋值。 (2认同)