2

我正在尝试传递一个在 main 中声明的未初始化的 2-D char 数组并在函数中定义它。

我收到分段错误,调试器说:

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]='-';
        }         
    }
}
4

1 回答 1

7

平庸,您使用的是 i 而不是 j:

for(j=0; j < maxCols;i++) 

打字错误,你应该写了j++,这就是你溢出的原因。

于 2012-12-09T20:46:11.477 回答