[英]Two dimensional arrays(dynamically) if condition for null in c
大家好,我创建了一个动态二维数组。 我想确定哪一行是空的,但我的语法知识不足。 预先感谢您的关注。
有我的代码:
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int i,j,*x,y=0;
int** p=malloc(sizeof(int*)*4);
for(i=0;i<3;i++)
p[i]=malloc(sizeof(int)*3);
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
p[i][j]=(y++);
}
x=NULL;
for(i=0;i<4;i++)
{
// Fourth index shouldn't be NULL?
if(p[i]==x)
printf("NULL");
else
printf("Not null");
}
for(i=0;i<4;i++)
free(p[i]);
free(p);
return(0);
}
malloc
返回的malloc
是*未初始化的,因此您不能对其进行 NULL 检查。
如果您改为使用calloc
,则会将内存初始化为所有字节 0,以便您可以检查 NULL。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.