我对指针初始化的概念性理解处于停滞状态。(C++)检查指针数组为空值
我已经创建了一个数组是这样的:
int *A = NULL;
A = new int[p];
现在试图模拟插入值这个数组,A 这里是收集,试想如果阵列已放置一些值。
例如:
A[0]= 10;
A[1]= 4;
A[2]= NULL;
A[3]= 2;
我将如何限制的,如果检查语句,如果数组为空?
迭代通过与我的数组值和检查
if(A[i] == NULL){
cout << "hello";
}
永远不会打印?
但是!如果我初始化数组,然后执行此操作。
int *A;
A = new int[p];
for (int i = 0; i < p; i++) {
A[i] = 0;
}
它将允许我捕获该NULL值并执行我的操作。
int * A = {0};有什么区别? (目前不工作)
并循环,单独设置每个值为0?
你的数组包含'int'值,不要使用'NULL'。实际上,一般不要在C++中使用'NULL',而应该在处理指针时使用'nullptr'。 “如果我初始化数组,然后执行此操作。”做什么?你的代码片段只显示数组的初始化。您应该提供[mcve](https://stackoverflow.com/help/mcve) – VTT
定义“int”类型的“_unfilled_”是什么意思?你的数组不包含指向'int'的指针,它包含'int's。 –
“我应该用矢量做这个吗?”大概。说实话“想象一下,阵列已经有了一些价值。”实际上并没有多少意义,为什么这些价值观不是连续的,价值从何而来?等等......如果你想在迭代中隐藏某些值,那么只需将这些“隐藏”值分配给'-1'并跳过它们。 – George