Pointers 生成新结构数据类型并返回指针的函数
我正在尝试制作一个程序,它创建一个新的数据类型数据结构。然后,函数为堆上的新数据类型分配内存。然后我想改变number和name的值,我该怎么做呢?我尝试的方式似乎不起作用:Pointers 生成新结构数据类型并返回指针的函数,pointers,struct,malloc,typedef,Pointers,Struct,Malloc,Typedef,我正在尝试制作一个程序,它创建一个新的数据类型数据结构。然后,函数为堆上的新数据类型分配内存。然后我想改变number和name的值,我该怎么做呢?我尝试的方式似乎不起作用: #include<stdio.h> #include<string.h> #include<stdlib.h> typedef struct{ char name[32]; int number; char checksu
#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;
}
#包括
#包括
#包括
类型定义结构{
字符名[32];
整数;
字符校验和;
}数据;
数据*新数据(字符*名称,整数){
data_t*ptr=malloc(sizeof(data_t));
strcpy(ptr->name,name)
(ptr->编号)=编号;
返回ptr;
}
您已经在函数中定义了结构。它不存在于函数之外。因此,编译器显示未知数据类型错误。
将
typedef
放在函数外部。您已经在函数内部定义了结构。它不存在于函数之外。因此,编译器显示未知数据类型错误。
将
typedef
放在函数外部。我认为这是因为data\u t
仅在new\u data
的范围内定义,因此从函数外部的角度来看,返回类型没有意义。将结构定义移到外部。我认为这是因为data\u t
仅在new\u data
的范围内定义,因此从函数外部的角度来看,返回类型没有意义。将结构定义移到外部。