【发布时间】:2013-09-10 10:50:03
【问题描述】:
我有一个关于在 c++ 中初始化新结构的问题。我是 C++ 新手。
typedef struct
{
int n;
char anArray*;
} myStruct;
void newStruct ( myStruct **ms, int x)
{
myStruct* local_ms = new myStruct;
local_ms->n = x;
local_ms->anArray= new char[sizeof(char)*n];
ms = &local_ms;
}
当我使用 void 指针调用 newStruct 时,我的意图是让它在 myStruct 中分配内存,然后将指向新结构的指针存储在 ms 中,以供以后使用。不幸的是,我认为 local_ms 仅在范围内是本地的,因此在从 newStruct 返回时会丢失。
话虽如此,我不确定如何正确初始化 myStruct!想法?
【问题讨论】:
-
如果你是 C++ 新手,现在是read a book 的好时机,不要再像 C 一样写了。
-
请避免在指针中传递东西的c风格(并避免一般的指针)
-
我在这里看到的关于 C++ 语言的唯一内容是
new而不是malloc。遗憾的是我无法将问题的标签修改为C,因为这意味着我必须修改问题的代码。
标签: c++ object pointers struct