我不知道错误是什么,因为这是在 Windows 上,我不知道如何在 Windows 上逐步执行程序。关于程序为什么在这里崩溃的任何想法(请参阅注释行)?我认为这可能与内存滥用有关。
#define TABLE_MAX_ROW 500
#define TABLE_MAX_COL 20
#define TABLE_MAX_ELT_LEN 60
从这里开始:
foo()
{
char table[TABLE_MAX_ROW][TABLE_MAX_COL][TABLE_MAX_ELT_LEN];
bar(table);
}
传递给这个函数:
bar(char table[TABLE_MAX_ROW][TABLE_MAX_COL][TABLE_MAX_ELT_LEN])
{
unsigned int col, row;
if (table == NULL) { // crashes here
printf("error: table == NULL!\n");
return -1;
}
for (row = 0; row < TABLE_MAX_ROW; row++)
for (col = 0; col < TABLE_MAX_COL; col++)
table[row][col][0] = '\0'; // if above if block commented out, crashes here
return 0;
}