gpt4 book ai didi

c - 尝试从结构中检索 U32 时程序崩溃

转载 作者:行者123 更新时间:2023-11-30 17:41:40 27 4
gpt4 key购买 nike

我被要求完成其他人开始的一些代码,并且我对如何在结构中复制 U32 值完全感到困惑。这些是各种结构的相关部分;请注意,我进行了很多修剪,因为这些是一些非常巨大的结构:

typedef struct AttackerList {
U32 count;
} AttackerList;

typedef struct AggroVars {
AttackerList attackerList;
}

typedef struct Player {
U32 aiAttackers;
}

现在,在我尝试修改的函数中:

void attackTarget(Player* target) {
AggroVars* aiTarget;
// Tons of code here.
aiTarget->attackerList.count++;
target->aiAttackers = aiTarget->attackerList.count;
// Tons more code here.
}

最后一行让我感到各种悲伤。它确实有效,我可以在调试输出中看到有多少小动物正在攻击玩家;但每当人工智能对目标失去兴趣时,它就会导致崩溃。我知道这与指针有关,但在代码上撒上星号会导致“无效间接”或“间接级别不同”。我对如何在没有任何奇怪的指针内容的情况下检索 aiTarget->attackerList.count 的值感到非常困惑。

最佳答案

您需要首先为每个结构分配内存,因此在代码中进行以下更改

void attackTarget(Player* target) 
{
AggroVars* aiTarget = malloc(sizeof(AggroVars));

aiTarget->attackerList.count++;

target->aiAttackers = aiTarget->attackerList.count;

}

关于c - 尝试从结构中检索 U32 时程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21043214/

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