试图通过struct时C 代码崩溃
C++ code crashing when trying to pass struct
我有这个结构:
struct dat {
std::string name;
};
运行以下代码时,我的程序崩溃了:
dat* x = (struct dat*)malloc(sizeof(struct dat));
x->name = str;
g_signal_connect (button, "clicked", G_CALLBACK (func), &x);
不要在C 中使用malloc
。
如果您需要变量具有动态存储持续时间,请改用new
和delete
。简而言之,malloc
Will 不调用任何构造函数,而new
则将。std::string
构造函数未被称为崩溃的原因。
在许多情况下,自动存储持续时间就足够了,您可以简单地写:
dat foo;
并通过引用将该实例传递给您的函数。
相关文章:
- C++代码崩溃并具有无限循环
- 为什么在同一条件变量上使用多个互斥锁会使此代码崩溃?
- 赋值运算符在我制作类模板时使代码崩溃
- 为什么这段代码崩溃了
- 正则表达式捕获会使代码崩溃
- 带有运算符的简单用户定义类 = 重载代码崩溃
- 使用自动循环时代码崩溃
- 当我输入12位数字时,为什么以下代码崩溃
- 为什么我的代码崩溃了,浮点异常
- PQXX简单代码崩溃了
- 试图通过struct时C 代码崩溃
- 当从共享库运行时,为什么此Android NDK代码崩溃
- 程序在Windows中的DLL边界上使用嵌入式Python/C 代码崩溃
- 对 NULL 值的按位操作是否会使C++中的代码崩溃
- C 程序用退出代码崩溃:9(Sigkill)
- 为什么以下代码崩溃
- 当未选择 /CLR时,编译的MATLAB代码崩溃
- C++Visual Studio Release生成未使用的代码崩溃
- 在RELEASE配置中使用向量push_back时,C++代码崩溃
- RCPP代码崩溃