在我的項目中我有三個文件:PlayBoard.c,Board。 c,Board.h,相關部分出現在下面。在PlayBoard中,我有一個指向struct board類型變量的指針。 當試圖編譯時,我經常得到一個「解除引用指針爲不完整類型」。 將Board的定義移動到Board.h有幫助,但不可能(這是一個作業問題),所以我需要另一種方法。C錯誤:取消引用指向不完整類型
PlayBoard.c:
#include "Board.h"
#include <assert.h>
#include <stdio.h>
#include <stdlib.h>
...
int main()
{
BoardP theBoard =//creation of new Board;
...
}
Board.h:
#ifndef BOARD_H
#define BOARD_H
// ------------------------------ includes ------------------------------
#include <stdbool.h>
#include <stdio.h>
// -------------------------- definitions -------------------------
/**
* A pointer to Gomoku table.
*
*/
typedef struct Board* BoardP;
/**
* A struct of a Gomoku table.
*/
typedef const struct Board* ConstBoardP;
...
#endif
和Board.c:
#ifndef BOARD_C
#define BOARD_C
#include "Board.h"
typedef struct Board
{
char **_board;
int _cols;
int _rows;
bool _turn;
int _xCounter;
int _oCounter;
int _lastx;
int _lasty;
} Board;
...
#endif
和你如何編譯? –
請創建[mcve] –
'BoardP theBoard'需要一個完整的類型。那時你還沒有一個。帶編譯按鈕的 – juanchopanza