簡體   English   中英

將二維數組傳遞給 C 中的函數時發生沖突類型錯誤

[英]Conflicting Types Error when Passing 2D Array to Function in C

我試圖將一個二維數組傳遞給我在程序中定義的函數,但由於某種原因,我不斷收到有關函數調用和定義類型沖突的錯誤。 我不完全確定是什么導致了這個問題,因為我不僅包含了正確的標題,而且還在函數中使用了正確的參數類型,表明它是一個二維數組。 下面是我正在編寫的代碼。

#include <stdio.h>
#include <stdbool.h>

int main()
{
    char array[6][6] = {
        {'.', '.', '.', '.', '.', '.'},
        {'.', '.', '.','.', '.', '.'},
        {'.', '.', '.', '.', '.', '.'},
        {'.', '.', '.', '.', '.', '.'},
        {'.', '.', '.', '.', '.', '.'},
        {'.', '.', '.', '.', '.', '.'}
    };
    
    bool success = testFunction(array, 0, 1);

    return 0;
}


bool testFunction(char array[][6], int i, int j){
    return true;
}

這是我運行程序后收到的錯誤:

main.c:21:6: error: conflicting types for ‘testFunction’
   21 | bool testFunction(char array[][6], int i, int j){

這真的讓我感到困惑,在查看了 StackOverflow 上以前的帖子后,我似乎無法找到可能導致此問題的原因。 我知道如果我將數組轉換為指針,這個問題可能會得到解決,但是不能將二維數組傳遞給函數嗎? 如果有人能幫我找到解決這個問題的方法,我將不勝感激。 謝謝你。

您需要在主函數之前定義它或將函數原型放在那里

bool testFunction(char array[][6], int i, int j);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM