我用c写了这个小函数:

void initializeArray(char arr[ROWS][COLS]){
    int i,j;
    for (i=0; i<COLS; i++){
        for (j=0; j<ROWS; j++){
            arr[i][j] = ' ';
        }
    }
}

编辑:ROWS 和 COLS 在头文件中定义

当我调用它时,我不断收到段错误。如果我使用遍历数组
一个指针没关系,任何想法为什么?

附言
传递的数组是在函数外部定义的,因此没有链接问题。

最佳答案

在您的函数声明中,您将 ROWS 作为第一个维度的大小,将 COLS 作为第二个维度的大小;但是在你的函数体中,你在第一个维度上循环 COLS 次,在第二个维度上循环 ROWS 次。根据数组声明是匹配函数声明还是代码中的“隐含声明”,这可能是一个问题。

关于c - c中遍历数组时出现段错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7013344/

10-11 16:31