如何在 C 中使用 malloc() 分配结构数组



我想分配结构数组,但我在 GCC 中遇到此错误:

st.c:在函数"main"中:
st.c:20:4:错误:从类型"void *"分配给类型"struct employeeStruct"时类型不兼容 *sp=malloc(sizeof(struct productStruct(*n(;

这是我的结构和指针:

struct productStruct
{
        unsigned int ID;
        unsigned long int serialnumber;
        char name[40];
};
struct productStruct *sp;

在主函数中从用户那里获得 n 个变量后:(我得到这一行的错误(

*sp=malloc(sizeof(struct *productStruct)*n);

我不知道这可能是类型转换错误,但我无法修复它。感谢您的关注

您有 2 个错误:

使用sp*sp并保留结构的大小,而不是指向结构的指针的大小(如果您确实想要一个结构数组而不是指针(:

sp=malloc(sizeof(struct productStruct)*n);

相关内容

  • 没有找到相关文章

最新更新