gpt4 book ai didi

c - 在 C 中 malloc sizeof 一个 typedef 结构

转载 作者:太空宇宙 更新时间:2023-11-04 05:07:05 25 4
gpt4 key购买 nike

我有一个 struct 指针,我想动态分配内存。

struct employeeStructure {
char name[100];
char address[255];
int age;
char ssnum[100];
};
typedef struct employeeStructure employee;
/* and in my main function */
employee *employeeRecord;
employeeRecord = malloc(sizeof(employee));
->>>
->>> error: assigning to 'employee *' (aka 'employeeStructure *') from incompatible type 'void *'
->>>

我得到一个错误:从不兼容的类型“void *”分配给“employee *”(又名“employeeStructure *”)

最佳答案

C++ 会给出这个错误,所以你可能正在使用 C++ 编译器。

将设置更改为 C,或根据 C++ 的要求添加显式强制转换(或切换为使用 new/delete)。

在 C 中,将显式转换添加到 malloc 的返回值被认为是错误的形式。这是几乎所有 C 代码都与 C++ 编译器不兼容的主要原因。最好的办法是考虑 C 和 C++ 不同的语言并分别学习它们。

编辑:See here至于为什么它被认为是错误的形式。

关于c - 在 C 中 malloc sizeof 一个 typedef 结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25216630/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com