我有一个关于在 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!想法?
最佳答案
"I think local_ms is only local in scope and is thus lost upon return from newStruct."
改变:
ms = &local_ms;
到:
*ms = local_ms;
将有助于避免将 newStruct
对象的指针分配给 *ms
的问题。
关于c++ - 如何适本地将指针设置为新结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18716929/