typedef struct put
{
string out;
struct put *next;
}outputc;
outputc *newout=(outputc*)malloc(sizeof( outputc));
newout->out=out;
运行到这条语句就会出错。。。
我该怎么解决
c++ 结构体中有string 会导致malloc 出问题吗?
答案:2 悬赏:40 手机版
解决时间 2021-02-27 21:22
- 提问者网友:蓝莓格格巫
- 2021-02-27 14:16
最佳答案
- 五星知识达人网友:西岸风
- 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);
不理解请追问,往采纳。
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
没有
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯