所以我有一个结构:
typedef struct Board {
size_t size;
char* board;
} Board;
我想知道在结构初始化期间是否可以做这样的事情:
Board boardStruct = {
solutionLength,
char emptyBoard[size]
};
不幸的是,当我尝试这样做时,出现编译错误:
“char”之前的预期表达式
有什么想法吗?我试图避免在结构初始化之外声明数组,但如果这是唯一的选择,我想这就是我必须采用的路线。
最佳答案
你可以做这样的事情:
#include <stdlib.h>
typedef struct Board {
size_t size;
char* board;
} Board;
int main()
{
const int solutionLength = 3; /* or #define solutionLength 3 */
Board boardStruct = {
solutionLength,
malloc(solutionLength)
};
return 0;
}
或更接近您的建议:
#include <stdlib.h>
typedef struct Board {
size_t size;
char* board;
} Board;
int main()
{
const int solutionLength = 3; /* or #define solutionLength 3 */
char emptyBoard[solutionLength];
Board boardStruct = {
solutionLength,
emptyBoard
};
return 0;
}
关于您可以在结构初始化中创建一个数组吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54271857/