所以我只想尝试将一些值加载到一个结构中,但我无法使其工作。我不熟悉C和指针等仍然有点令人困惑,所以我不确定为什么这不起作用。
struct monster_{
int health;
int power;
int x_position;
int y_position;
};
void allocate(struct monster_ **a);
void init_monster(struct monster_ *a);
int main(){
struct monster_ *m;
allocate(&m);
init_monster(m);
printf("%d", m->health);
return 0;
}
void allocate(struct monster_ **a){
*a=(void*)malloc(sizeof(struct monster_));
}
void init_monster(struct monster_ *a){
a->health = 100;
a->power = 90;
a->x_position = 25;
a->y_position = 90;
}
所以我想要发生的是,此时m->运行状况应该打印100,但它只打印0。
编辑:早期的代码并不是我代码中的代码。这是我实际使用的。
答案 0 :(得分:1)
您的代码在我的计算机上按预期工作。我想你需要的只是以下两个头文件:
#include <stdio.h>
#include <stdlib.h>