c++ - 如何适本地将指针设置为新结构?

标签 c++ object pointers struct

我有一个关于在 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/

相关文章:

javascript - 如何给对象添加属性?

JAVA,数组以可变数量的对象作为参数

c - 如何在 C 函数中使用全局结构引用填充结构指针?

c - 打印 '.' 之后的每个字母,例如如果我输入 a..bcde..fg..h,程序将打印 bfh

c++ - 自定义转换运算符的 Clang 歧义

c++ - 使用 system() 执行 ssh 命令

c++ - 内存意识和大数据

c++ - 锁定自由原子状态类 - 是否正确?

sql - 如何编写一个方法来为 SQL 和数组构建查询?

C:fread返回0