我有以下代码部分:

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/

10-11 15:33