【发布时间】:2017-04-23 11:43:38
【问题描述】:
我正在尝试检查数组的索引是否有值。
void * cols;
...
...
if (((int*)cols)[1]==NULL){
counter++;
columns++;
}
else
{
value=((int*)cols)[1];
fprintf(f, "Validation result from process id: %u. :column %d is invalid\n", (unsigned int)thread_10,value);
}
这给了我警告“指针和整数之间的比较('int'和'void *')”。我究竟做错了什么 ?我如何检查索引是否为空?我也无法检查 0,因为 0 在我的情况下是一个有效值,这意味着如果索引包含值 0,则表示其有效。
【问题讨论】:
-
只有指针可以是
NULL。((int*)cols)[1]是int,而不是指针。并且没有“空变量”之类的东西,因此您无法检查数组是否具有分配给它的某些值。你,程序员,需要跟踪它。
标签: c pointers comparison void