我有以下代码部分:
typedef struct Board* BoardP;
typedef struct Board {
int _rows;
int _cols;
char *_board;
} Board;
char* static allocateBoard(BoardP boardP, int row, int col) {
boardP->_rows = row;
boardP->_cols = col;
boardP->_board = malloc(row * col * sizeof(char));
return boardP->_board;
}
我似乎无法弄清楚为什么会出现错误
预期的标识符或“(”在“静态”之前
我将返回类型更改为char *后,它给出了错误。当它无效时,没有错误。
还有一个问题:有人告诉我使用malloc时需要强制转换,但是,如果没有强制转换,这似乎可以正常工作。在这种情况下需要吗?
谢谢
最佳答案
您的函数原型需要为:
static char* allocateBoard(BoardP boardP, int row, int col)
C中的
malloc()
不需要强制转换;但是,它在C ++中。关于c - malloc的返回值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3585847/