我只是没有进一步了解在 C 和主要是 C++ 中为数组分配内存。 我已经查找过示例,但没有任何对我有用的示例,至少看起来是这样。
所以如果我在这里有这样的 typedef:
typedef struct
{
int x;
int y;
} Coordinate;
Coordinate* myList;
我也有一个 Coordinate
类型的数组,我如何动态地向它追加项目。
我所知道的是,我必须在 C 中使用 malloc
和后来的 free
,在 C++ 中使用 new
/delete
。
(Malloc 吓死我了)
所以我的目标是这样的功能:
void AddSomething ( int x, int y )
{
// myList malloc/new magic here
}
我的问题是:
为 myList 分配新内存然后将新项添加到其中的行必须看起来像什么? 你能给我看一个工作的 C 和 C++ 示例吗?
C 中的 malloc 究竟是如何工作的?它有一些我不熟悉的东西(函数前有某种指针,分配的变量设置为
malloc
的返回值)
最佳答案
使用 vector 来完成这项工作。
#include <vector>
typedef struct
{
int x;
int y;
} Coordinate;
std::vector<Coordinate> coordinates;
Coordinate newCoord;
newCoord.x = 1;
newCoord.y = 1;
coordinates.push_back(newCoord);
附加信息: 要了解 malloc/free 和 new/delete,您可以阅读章节
13:动态对象创建
布鲁斯埃克尔斯 Thinking C++ Volume 1 .这是一本可以免费下载的书。
关于c++ - C(++) malloc 混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2319047/