将值加载到函数内的结构指针中

时间:2015-12-30 01:56:12

标签: c pointers structure function-pointers

所以我只想尝试将一些值加载到一个结构中,但我无法使其工作。我不熟悉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。

编辑:早期的代码并不是我代码中的代码。这是我实际使用的。

1 个答案:

答案 0 :(得分:1)

您的代码在我的计算机上按预期工作。我想你需要的只是以下两个头文件:

#include <stdio.h>
#include <stdlib.h>