小编max*_*ylh的帖子

将未初始化的2D Char数组传递给函数

我试图传递一个未初始化的2-D char数组,该数组在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]='-';
        }         
    }
}
Run Code Online (Sandbox Code Playgroud)

c char parameter-passing multidimensional-array

2
推荐指数
1
解决办法
1505
查看次数