【发布时间】:2016-09-10 14:46:28
【问题描述】:
我得到了这两个结构
struct CamelZombie{
int hp;
int attack;
CamelZombie *next;
};
struct list_of_cz{
CamelZombie *head;
};
我已经创建了一个函数来创建具有给定值的链表:
void createCamelZombie(list_of_cz *&pZ, int z_hp, int z_attack, int N){
pZ = new list_of_cz;
pZ->head->hp = z_hp;
pZ->head->attack = z_attack;
CamelZombie *temp1 = pZ->head;
CamelZombie *temp2 = NULL;
for (int i = 0; i < N - 1 ; i++){
temp2 = new CamelZombie;
temp2->hp = z_hp;
temp2->attack = z_attack;
temp1->next = temp2;
temp1 = temp2;
}
}
然后我像这样把它放在函数 main 中,但是 proram 崩溃了,不知道为什么。
list_of_cz *pZ = NULL;
createCamelZombie(pZ, z_hp, z_attack, N);
while (pList->head != NULL && pZ != NULL){
atPlant(numPlant(pList) - 1, pList)->hp -= pZ->head->attack;
if (atPlant(numPlant(pList) - 1, pList)->hp <= 0) deletePlant(numPlant(pList) - 1, pList);
int count = 0;
CamelZombie *z_temp;
z_temp = pZ->head;
while (z_temp){
if (count == 0) z_temp->hp -= allPlantAttack(pList, numPlant(pList) - 1);
else z_temp->hp -= allLaserAttack(pList); //trouble right here
if (z_temp->hp <= 0) deleteCamelZombie(pZ, count);
z_temp = z_temp->next;
count++;
}
似乎我在写void createCamelZombie() 时错过了一些东西,因为编译器告诉我z_temp->hp 没有值。请帮帮我!
【问题讨论】:
-
请逐字发布错误信息!
-
+ pZ->head 0xcdcdcdcd {hp=???攻击=???下一个=??? } CamelZombie * 编译器告诉我这个
-
这属于你的问题。 (就像你目前没有提供的 minimal, complete, and verifiable example 一样。关于那个看似奇怪的值,you may find this helpful。
-
您正在访问一个未初始化的指针。请注意,这是运行时错误消息,而不是编译器问题。
-
"如何在 C++ 中创建链表?" - 使用std::list。
标签: c++ data-structures singly-linked-list