我试图用字母网格扫描。 cases
是字母网格的数量,r
,c
是每个网格的行数和列数。我想我可以用里面的2D数组创建一个结构数组。我现在已经在这个工作了几个小时,但它仍然给我带来了问题:
警告:
错误:
代码:
scanf_s("%d", &cases);
struct grid {
char **grid;
};
struct grid *grids = (struct grid*)malloc(cases * sizeof(struct grid));
for (i = 0; i < cases; i++) {
scanf_s("%d %d", &r, &c);
grids[i].grid = (char**)malloc(sizeof(char*) * r);
for (k = 0; k < r; k++) {
grids[i].grid[k] = (char*)malloc(sizeof(char) * (c+1));
scanf_s("%s", grids[i].grid[k], (c+1));
}
}
答案 0 :(得分:0)
我不得不在问题中调整一些代码,同时添加一些缺少的部分(应该也提供,顺便提一下),以获得可编辑的(使用 VStudio2010 )。
main.c中:
#include <stdio.h>
#include <stdlib.h>
struct grid {
char **grid;
};
int main() {
int cases, r, c, k, i;
struct grid *grids;
scanf_s("%d", &cases);
grids = (struct grid*)malloc(cases * sizeof(struct grid));
for (i = 0; i < cases; i++) {
scanf_s("%d %d", &r, &c);
grids[i].grid = (char**)malloc(sizeof(char*) * r);
for (k = 0; k < r; k++) {
grids[i].grid[k] = (char*)malloc(sizeof(char) * (c + 1));
scanf_s("%s", grids[i].grid[k], (c + 1));
}
}
return 0;
}
备注强>: