C 2D数组未使用int grid [1448] [1448]或更高版本初始化

问题描述 投票:0回答:1

我正在尝试制作一个二维随机数组,将其自身打印在文档上,当我在[1448] [1448]上方放置任何内容时,该数组将不起作用并返回“线程1:EXC_BAD_ACCESS(代码= 2,地址= 0x7ffeef3ffff8)”。

    FILE * fdave = fopen("/Users/dave/Documents/dave.txt", "w");
    int mapx, mapy, tempx = 0, tempy = 0;
    printf("X Length: 0-");
    scanf("%d", &mapx);
    printf("Y Length: 0-");
    scanf("%d", &mapy);
    int grid[mapy][mapx];

    fprintf(fdave, "{\n");
    for (tempy = 0;tempy  < (mapy); tempy++){
        fprintf(fdave, "{");
        for (tempx = 0; tempx < (mapx); tempx++){
            grid[tempy][tempx] = rand() % 10;
            if (tempx == mapx - 1){
                fprintf(fdave, "%d", grid[tempy][tempx]);
            }else{
                fprintf(fdave, "%d, ", grid[tempy][tempx]);
            }
        }
        if (tempy == mapy - 1){
            fprintf(fdave, "}\n");
        }else{
            fprintf(fdave, "},\n");
        }
    }
    fprintf(fdave, "}\n");

    fclose(fdave);

我正在尝试制作一个二维随机数组,将其自身打印在文档上,当我在[1448] [1448]上方放置任何内容时,该数组将不起作用并返回“线程1:EXC_BAD_ACCESS(代码= 2,地址= ...

c arrays
1个回答
0
投票

我会使用malloc。像这样的东西:

© www.soinside.com 2019 - 2024. All rights reserved.