2013-09-30 82 views
0

新手需要幫助。此代碼適用於Windows(Visual Studio 2012),但在GCC上,我得到錯誤:「數組類型具有不完整的元素類型」,用於下面的所有void類型函數。有人能告訴我爲什麼嗎? (這只是我所有代碼的一部分)。 謝謝:-)嘗試傳遞二維數組後,出現「錯誤:數組類型具有不完整的元素類型」

void initialize_arrays(struct data data_list[][ARRAY_SIZE]); 
void read_file(struct data data_list[][ARRAY_SIZE]); 
void print_struct_array(struct data data_list[][ARRAY_SIZE]); 
void parallel_print(int thread_number, struct data data_list[][ARRAY_SIZE]); 
void print_struct(struct data data_struct, int thread, int array_num, int elem_num); 

struct data { 
    char *name; 
    int age; 
    double lenght; 
}; 

int main() 
{ 
    struct data data_array[STRUCT_SIZE][ARRAY_SIZE]; 
    initialize_arrays(data_array); 
    read_file(data_array); 
    print_struct_array(data_array); 
    parallel_print(6, data_array); 
    getchar(); 
    return 0; 
} 

void initialize_arrays(struct data data_list[][ARRAY_SIZE]) 
{ 
    int i,j; 
    for(i = 0; i < ARRAY_SIZE; i++) 
     for(j = 0; j < STRUCT_SIZE; j++) 
     { 
      data_list[i][j].name = NULL; 
      data_list[i][j].age = 0; 
      data_list[i][j].lenght = 0.0; 
     } 
} 
+3

移動'結構data'定義開始,之前的函數原型。 –

回答

2

在函數原型聲明的點,有作爲struct data已知的程序沒有這樣的事情,因爲struct聲明出現進一步下跌。

將結構聲明移到函數原型的上方。

(無論是一些C語言代碼的工作或不在Visual Studio是一個大樂透,因爲它幾乎沒有任何遵循C標準。)

相關問題