我试图隐藏我的结构的实现。结构的定义位于Board.h
:
typedef struct Board* BoardP;
typedef const struct Board* ConstBoardP;
我想根据需要分配内存Board.c
:
#include <stdio.h>
#include <stdlib.h>
#include "Board.h"
#define TARGET_LENGTH 5
#define DEFAULT_BOARD_SIZE 10
struct Board*
newBoard(int r, int c)
{
struct Board *b = (struct Board*) malloc(sizeof(struct Board));
char ** array;
int i;
array = (char**) malloc( r*sizeof(char*) );
for (i=0; i<r; i++)
{
array[i] = malloc( c*sizeof(char) );
}
b->_values = array;
b->_last_player = 'X';
b->_size_r = r;
b->_size_c = c;
return b;
}
但我得到了错误:
'sizeof' 对不完整类型'struct Board' 的无效应用</p>
我现在在圈子里跑了几个小时,需要有人来清理我造成的混乱。如果我想动态地为结构内的数组分配内存,我该如何事先定义结构?