生成新结构数据类型并返回指针

时间:2017-03-26 15:25:48

标签: pointers struct malloc typedef

我正在尝试创建一个程序,它创建一个结构的新数据类型data_t。然后,函数为堆上的新数据类型分配内存。然后我想更改数字和名称的值,我该怎么做呢?我尝试它的方式似乎不起作用:

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

    typedef struct{
      char name[32];
      int number;
      char checksum;
    }data_t;


    data_t *new_data(char *name, int number){

      data_t *ptr=malloc(sizeof(data_t));
      strcpy(ptr->name ,name)
      (ptr->number)=number;



      return ptr; 

    }

1 个答案:

答案 0 :(得分:0)

您已在函数内定义了 struct 。它不存在于函数之外。因此编译器显示未知数据类型错误。 将typedef放在函数外部。