【发布时间】:2016-11-27 21:34:42
【问题描述】:
我想知道我的代码中的错误在哪里。我刚开始学习 C,我刚接触指针和数组,所以我不知道错误在哪里。问题似乎出在我使用 struct 创建自己的数据类型的部分,因为当我运行程序时,我放入的调试文本都没有显示在控制台中。我在互联网上寻找答案,但没有找到任何答案。任何帮助将不胜感激。
#include <stdio.h>
#include <stdlib.h>
#define MAX_size 2000
typedef struct TMatrix{
int grid[MAX_size][MAX_size];
int sizex;
int sizey;
} TMATRIX;
int readSize(TMATRIX *matrix);
int main(void){
TMATRIX matrix;
printf("DEBUG\n");
if (readSize(&matrix)==1){
printf ("Invalid input.\n");
return 1;
}
printf("%d %d\n", matrix.sizex,matrix.sizey);
return 0;
}
int readSize(TMATRIX *matrix){
printf("DEBUG\n");
if (scanf("%d %d", &matrix->sizex, &matrix->sizey)!=2) return 1;
if (matrix->sizex<1 || matrix->sizey<1) return 1;
return 0;
}
【问题讨论】:
标签: c struct segmentation-fault