imk*_*dal 2 c++ heap stack pointers new-operator
在这段代码中:
int * p = new int(44);
Run Code Online (Sandbox Code Playgroud)
p在堆上分配,它指向的值是44; 但现在我也可以这样做:
p[1] = 33;
Run Code Online (Sandbox Code Playgroud)
没有收到错误.我一直在想
int * p = new int(44);
Run Code Online (Sandbox Code Playgroud)
只是另一种说法"P在堆上分配并指向一个包含44的地址",但显然它使得pa指向一个int数组?是这个新阵列44的大小?或者这个结果是不寻常的.
你是对的:P在堆上分配并指向一个包含44的地址.没有分配数组. p[1] = 33;他们称之为"未定义的行为".您的程序可能会崩溃,但不保证每次执行此操作都会崩溃.