【发布时间】:2012-11-27 07:32:48
【问题描述】:
我正在尝试传递一个未初始化的二维字符数组,该数组在 main 中声明并在函数中定义。
我收到一个分段错误,调试器说:
Program received signal SIGSEGV, Segmentation fault.
0x00000000004005af in initialize_world (array=0x7fffffffdff0, maxRows=6,
maxCols=5) at ec.c:33
33 array[i][j]='-';
这是原型、main和函数的代码:
#include <stdio.h>
#include <string.h>
#define ROWS 10
#define COLS 12
void initialize_world(char array[][COLS],int maxRows,int maxCols);
int main(int argc, char *argv[]) {
char array[ROWS][COLS];
int numOfRows, numOfCols;
numOfRows = 6;
numOfCols = 5;
initialize_world(array,numOfRows,numOfCols);
return 0;
}
void initialize_world(char array[][COLS],int maxRows,int maxCols) {
int i,j;
for(i=0; i < maxRows;i++) {
for(j=0; j < maxCols;i++) {
array[i][j]='-';
}
}
}
【问题讨论】:
-
为什么会有 ROWS-numOfRows 和 COLS-numOfCols?
标签: c multidimensional-array char parameter-passing