【发布时间】:2015-11-20 00:56:50
【问题描述】:
我想创建一个动态内存数组函数,我可以在参数中放入我想要的任何类型、计数和我想要的项目。我一直在谷歌搜索和查看 YT 视频,但没有一个解释如何做到这一点,以及我想要的项目何时是指针。例如,我会这样:
struct Entity
{
int health;
int level;
int experience;
char* name;
}
Entity** entitylist = NULL;
int entitycount = 0;
Entity* CreateEntity(/*args for creating an entity*/)
{
Entity* newentity = malloc(sizeof(Entity));
// All of the entity creation stuff and at the end...
AddItemToList(&Entity, &newentity, &entitycount);
}
我知道在我要创建的函数中我需要传递对特定列表的引用,但我对此一无所知。我尝试使用 malloc 和 realloc 但要么使程序崩溃,要么什么也不做。 new 和 delete 对这类东西有用吗?
如何删除这样的东西?我还没有在互联网上看到任何关于从列表中删除项目,仅添加它们的信息。
谢谢!
【问题讨论】:
-
您使用的是 C 还是 C++?它们是非常不同的语言,在这类事情上有着非常不同的最佳实践。
-
是的,选择一种语言,人们可能会指向十几个库。
-
C++ 抱歉。虽然我对 C 的东西也很好。
-
那我不能用指针怎么办?
-
在 C++ 中使用
malloc绝对没有错。