加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – C()malloc混淆

发布时间:2020-12-16 10:54:22 所属栏目:百科 来源:网络整理
导读:我只是没有进一步为C中的数组分配内存,主要是C. 我找了一些例子,但对我来说没有任何有用的,至少看起来如此. 所以,如果我在这里有一个typedef: typedef struct{int x;int y;} Coordinate;Coordinate* myList; 我也有一个Coordinate类型的数组,如何动态地向它
我只是没有进一步为C中的数组分配内存,主要是C.
我找了一些例子,但对我来说没有任何有用的,至少看起来如此.

所以,如果我在这里有一个typedef:

typedef struct
{
int x;
int y;
} Coordinate;

Coordinate* myList;

我也有一个Coordinate类型的数组,如何动态地向它添加项目.
我所知道的是,我必须使用malloc,然后在C中使用free,在C中使用new / delete.
(Malloc吓坏了我)

所以我的目标是这样的功能:

void AddSomething ( int x,int y )
{
// myList malloc/new magic here
}

我的问题是:

>如何为myList分配新内存然后将新项添加到其中的行必须如何?
能告诉我一个C和C的工作示例吗?
> C中的malloc究竟是如何工作的?有一些我不熟悉的事情(在函数之前有一些指针,并且分配的变量设置为mallocs返回值)

解决方法

使用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:动态对象创建

在Bruce Eckels Thinking C++ Volume 1.这本书可以免费下载.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读