繁体   English   中英

二维数组(动态)如果条件为 c 中的 null

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM