Yod*_*oda 2 c++ error-handling pointers
有什么问题:我只想指向int并将该int值赋予0.
int* p;int* q;
*p = 0; *q = 0;
cout<<"p = "<<*p<<" q = "<<*q<<endl;
Run Code Online (Sandbox Code Playgroud)
这很烦人
作品:
int* p;
*p = 0;
cout<<*p<<endl;
Run Code Online (Sandbox Code Playgroud)
崩溃:
int* p;
int* q;
*p = 0;
*q = 0;
cout<<*p<<endl;
Run Code Online (Sandbox Code Playgroud)
Luc*_*ore 14
WORKS:
int* p;
*p = 0;
Run Code Online (Sandbox Code Playgroud)
不!它似乎有效,但实际上是未定义的行为.
声明会int* whatever;
留下未初始化的指针.你无法取消引用它.
要初始化指针并将其指向的值设置为0(在您的情况下):
int* p = new int(0);
Run Code Online (Sandbox Code Playgroud)
要使用指针,该指针必须指向某个东西.所以有两个步骤:创建指针,并创建它指向的东西.
int *p, *q; // create two pointers
int a; // create something to point to
p = &a; // make p point to a
*p = 0; // set a to 0
q = new int; // make q point to allocated memory
*q = 0; // set allocated memory to 0
Run Code Online (Sandbox Code Playgroud)