c - 取消引用未定义的指针值?

标签 c pointers undefined dereference

我正在尝试分配一个 3d 数组,然后初始化它,如下所示,问题是,我收到一条警告,说我正在尝试在以下行中“取消引用未定义的指针值”:Parque->matriz[i][j][p]='@';

任何帮助将不胜感激。

我的代码如下:

parque *Parque;
Parque = (parque *) malloc(sizeof(parque));


Parque->matriz = (char***)malloc(x * sizeof(char **));


    for (i = 0; i < x; i++)
    {
        Parque->matriz[i] = (char**)malloc(y * sizeof(char*));

        for (j = 0; j < y; j++)
        {
            Parque->matriz[i][j] = (char*)malloc(z*sizeof(char));

        }
    }

    for (p=0; p<z; p++)
    {
        for (j=y-1;j>=0; j--)
        {
            for (i=0; i<x; i++)
            {
                Parque->matriz[i][j][p]='@';

            }
        }
    }

这是 struct parque 的定义:

struct  _parque{
    int dimx;
    int dimy;
    int pisos;
    int entradas;
    int acessos;
    int nodes;
    char ***matriz;
    int capacidade;
    int lugares_ocupados;
};

typedef struct _parque parque;

最佳答案

尽管您有一种有趣的方式来迭代索引,但您的代码似乎是正确的。也许你的编译器感到困惑。请尝试:

for (i = 0; i < x; i++)
{
    Parque->matriz[i] = (char**)malloc(y * sizeof(char*));

    for (j = 0; j < y; j++)
    {
        Parque->matriz[i][j] = (char*)malloc(z*sizeof(char));

        for (p = 0; p < z; p++)
        {
            Parque->matriz[i][j][p]='@';

        }

    }
}

这在语义上等同于第二组嵌套循环。

关于c - 取消引用未定义的指针值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34185252/

相关文章:

python - 是否可以打开 PyGTK 对象?

c - Eclipse(开普勒)不显示结构成员

jQuery 尝试查找 href 时返回 "undefined"

c - 将指向数组的指针传递给 glGenBuffers

c - 如何在C中获取数组的长度? "sizeof"是解决方案吗?

pointers - 从结构指针数组创建映射

c++ - 为什么没有从指针到对 const 指针的引用的隐式转换

c - 函数名中的指针/指针函数

undefined - fatal error :在第1行的index.php中调用未定义的函数get_header()

javascript - offset() 未定义但 == 或 === 不这么认为