这是我的代码;
#include <iostream>
using namespace std;
int main()
{
int *D = new int[20000];
D = { 0 };
cout << D[0];
}
Run Code Online (Sandbox Code Playgroud)
在cout
语句中,无论数组的大小如何,我都会收到访问冲突错误.为什么?
因为
D = {0};
Run Code Online (Sandbox Code Playgroud)
设置指向D
值的指针0
,即nullptr
.然后尝试去引用
cout << D[0];
Run Code Online (Sandbox Code Playgroud)
空指针是UB(未定义的行为).
如果您想将数组的第一个元素设置为零,则需要执行此操作
D[0] = 0;
Run Code Online (Sandbox Code Playgroud)