快捷导航

这里的链表程序哪里不妥?为什么会有访问地址冲突的现象?

typedef struct No { string name; struct No* next;}Node,  * pNode;pNode list(void) { string val; pNode HEAD = (pNode)malloc(sizeof(Node)); if (HEAD == nullptr) {  cout next = nullptr;  end = p_end; } return HEAD;}

免责声明:本内容仅代表回答者见解不代表本站观点,请谨慎对待。

版权声明:作者保留权利,不代表本站立场。

回复

使用道具 举报

参与会员1

个人觉得问题在于,不应当使用C风格的struct。
既然C++中struct是一个类,你就应当写成C++的类。使用new去创建对象。
malloc不会调用构造函数,只是分配那么大一块内存,而且C++里,string也是一个类,这样可能导致某些地方内存访问出问题。
回复

使用道具 举报

可能感兴趣的问答

发新帖
  • 微信访问
  • 手机APP