是否有可能创建一个在编译时不知道大小的结构?

是否有可能创建一个在编译时不知道大小的结构?,第1张

概述正如问题所述,我希望在C中创建一个结构,我在编译时不知道它的总大小. 例如,我想创建一个包含计数值的结构和一个包含count元素的数组.我知道这可以实现为: typedef struct myStruct{ int count; int *myArray;} myStruct; 但是,我希望这个结构占用一个可靠的内存块,所以我可以在以后的时间点使用memcpy().像这样: ty 正如问题所述,我希望在C中创建一个结构,我在编译时不知道它的总大小.

例如,我想创建一个包含计数值的结构和一个包含count元素的数组.我知道这可以实现为:

typedef struct myStruct{    int count;    int *myArray;} myStruct;

但是,我希望这个结构占用一个可靠的内存块,所以我可以在以后的时间点使用memcpy().像这样:

typedef struct myStruct{    int count;    int myArray[count];} myStruct;
解决方法 听起来你正在寻找灵活的阵列成员:

typedef struct myStruct{    int count;    int myArray[];} myStruct;

然后,当您稍后分配它时:

myStruct *x = malloc(sizeof(myStruct) + n * sizeof(int));x->count = n;
总结

以上是内存溢出为你收集整理的是否有可能创建一个在编译时不知道大小的结构?全部内容,希望文章能够帮你解决是否有可能创建一个在编译时不知道大小的结构?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/langs/1215288.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-05
下一篇2022-06-05

发表评论

登录后才能评论

评论列表(0条)

    保存