c++ - C(++) malloc 混淆

标签 c++ arrays malloc

我只是没有进一步了解在 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/

相关文章:

javascript - 从列表到数组

c - 从外部函数中释放指针

c - 为结构动态分配内存的正确方法是什么?

c++ - 如何使用 C++ 读取包含二进制和 ASCII 混合数据的文件

c++ - 对静态类成员的 undefined reference

arrays - Swift:扩展 [<SomeType<T>?] 来生成 [<T>?] 可能吗?

python - 将不同维度的图像存储在 numpy 数组中

通过运行程序检查堆空间量;与实际边界不符

C++ 对结构 vector 的操作

c++ - 奇怪的家长 ID