【发布时间】:2017-08-19 05:31:07
【问题描述】:
我正在尝试制作一个程序,它创建一个结构的新数据类型 data_t。然后一个函数为堆上的新数据类型分配内存。然后我想改变 number 和 name 的值,我该怎么做呢?我试过的方法,好像不行:
#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;
}
【问题讨论】:
-
我想这是因为
data_t只定义在new_data的范围内,所以从函数外部的角度来看,返回类型没有意义。将结构定义移到外面。
标签: pointers struct malloc typedef