永发信息网

c++ 结构体中有string 会导致malloc 出问题吗?

答案:2  悬赏:40  手机版
解决时间 2021-02-27 21:22
  • 提问者网友:蓝莓格格巫
  • 2021-02-27 14:16
typedef struct put
{
string out;
struct put *next;
}outputc;

outputc *newout=(outputc*)malloc(sizeof( outputc));
newout->out=out;

运行到这条语句就会出错。。。
我该怎么解决
最佳答案
  • 五星知识达人网友:西岸风
  • 2021-02-27 14:34
这个是 构造函数未调用 导致的.. 建议修改代码
outputc *newout=(outputc*)malloc(sizeof( outputc));改为
outputc *newout = new outputc;
// 记得要释放
// delete newout;

如果你非要用 malloc 申请内存,那就会麻烦很多。代码如下
outputc *newout = (outputc*)malloc(sizeof(outputc));
new (newout) outputc;

// 释放代码
newout->~outputc();
free(newout);

不理解请追问,往采纳。
全部回答
  • 1楼网友:胯下狙击手
  • 2021-02-27 15:43
没有
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯