gpt4 book ai didi

c - C 结构数组

转载 作者:太空宇宙 更新时间:2023-11-04 04:57:22 24 4
gpt4 key购买 nike

如果我在 C 中创建一个结构并想将它们添加到未设置为固定大小的数组中,该数组是如何创建的?

能否创建一个 tempStruct 用于每次迭代,同时获取用户输入并将其存储在数组中,并始终在循环中使用相同的 tempStruct 结构?

如果大小未知(取决于用户输入),如何创建数组,以及如何将结构添加到此数组?

最佳答案

当编译时大小未知时,您需要在堆上分配内存,而不是在数据段(存储全局变量的地方)或堆栈(存储函数参数和局部变量的地方) ).在 C 中,您可以通过调用 malloc 等函数来完成此操作。

MyStructType *myArray = (MyStructType *)malloc(numElements * sizeof(MyStructType)
... do something ...
free(myArray)

如果您实际使用 C++,通常最好使用 new[] 和 delete[],例如

MyStructType *myArray = new MyStructType[numElements]
... do something ...
delete [] myArray

请注意,new[] 必须与 delete[] 成对出现。如果您正在分配单个实例,请使用 new 和 delete(不带“[]”)。 delete[] 和 delete 不等价。

此外,如果您使用的是 C++,通常使用 STL vector 会更简单、更安全。

关于c - C 结构数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4908296/

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