gpt4 book ai didi

c - 段错误问题(C)

转载 作者:太空狗 更新时间:2023-10-29 17:18:11 25 4
gpt4 key购买 nike

我有一个名为 Game 的结构,其中包含一个关卡数组,定义如下:

typedef struct 
{
Level levels[x];
} Game;

当我编译代码时,如果 x 是 1、2 或 3,程序运行正常。如果它是任何其他值(例如 4),我会得到一个段错误。我没有在任何地方访问数组。 Main 目前是这样的(除了初始化之外的所有内容都进行了评论):

int main (...)
{
Game g;

return 0;
}

有什么线索吗?

提前致谢。

最佳答案

如果 Level 类/结构真的很大,你可以尝试使用这个:

typedef struct {
Level *levels;
} Game;

然后使用 malloc() 或 new 分配关卡。或者,如果您确实需要一系列级别:

typedef struct {
Level* levels[NUM_LEVELS];
} Game;

然后用这样的方式分配级别:

// Allocate levels
int i;
for(i=0;i<NUM_LEVELS;i++) {
gameStruct.levels[i] = (Level*)malloc(sizeof(Level));
initLevelNum(gameStruct.levels[i], i);
}

关于c - 段错误问题(C),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2835776/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com