好吧,我想用一个void函数初始化我的2D数组。但我得到了一个分割错误。。。
这是我的密码:

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>


    void groupeetchoixgen(int*** choixGEN);

    void main(int args, char **argv)
    {
        int** choixGEN;
        int i,j;
        choixGEN=(int**) malloc (sizeof(int*)*2);
        for (i=0; i<3; i++)
        {
            choixGEN[i]=(int*) malloc (sizeof(int)*3);
        }
        groupeetchoixgen(&choixGEN);
    }

        void groupeetchoixgen(int*** choixGEN)
    {
        (*(choixGEN)[1])[0]=1;
    }

我认为问题是(*(choixGEN)[1])[0]=1;
但我不知道为什么!
谢谢你的帮助

最佳答案

您只为两个(int*)分配内存,但尝试引用choixGEN[0],choixGEN[1],choixGEN[2],即3

关于c - void函数中2D数组上的指针,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11585953/

10-12 02:58