第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

這里的鏈表程序哪里不妥?為什么會(huì)有訪問地址沖突的現(xiàn)象?

這里的鏈表程序哪里不妥?為什么會(huì)有訪問地址沖突的現(xiàn)象?

C++
我是北方棲姬 2018-09-19 12:58:30
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?<<?"分配內(nèi)存失??!"?<<?endl; ??exit(-1); ?} ?pNode?end?=?HEAD; ?end->next?=?nullptr; ?int?i; ?cout?<<?"請(qǐng)輸入人數(shù)"?<<?endl; ?cin?>>?i; ?cout?<<?"請(qǐng)輸入姓名"?<<?endl; ?for?(int?j?=?0;?j?<?i;?j++)?{? ??cin?>>?val; ??pNode?p_end?=?(pNode)malloc(sizeof(Node)); ??if?(p_end?==?nullptr)?{ ???cout?<<?"分配內(nèi)存失?。??<<?endl; ???exit(-1); ??} ??p_end->name?=?val; ??end->next?=?p_end;?????//出錯(cuò)點(diǎn):訪問地址沖突 ??p_end->next?=?nullptr; ??end?=?p_end; ?} ?return?HEAD; }
查看完整描述

1 回答

已采納
?
AAnonymous

TA貢獻(xiàn)62條經(jīng)驗(yàn) 獲得超31個(gè)贊

個(gè)人覺得問題在于,不應(yīng)當(dāng)使用C風(fēng)格的struct。

既然C++中struct是一個(gè)類,你就應(yīng)當(dāng)寫成C++的類。使用new去創(chuàng)建對(duì)象。

malloc不會(huì)調(diào)用構(gòu)造函數(shù),只是分配那么大一塊內(nèi)存,而且C++里,string也是一個(gè)類,這樣可能導(dǎo)致某些地方內(nèi)存訪問出問題。

查看完整回答
1 反對(duì) 回復(fù) 2018-09-19
  • 我是北方棲姬
    我是北方棲姬
    謝謝指教!我的struct是C風(fēng)格的,換成C++風(fēng)格并且把malloc換成new之后就沒有問題了。
  • 我是北方棲姬
    我是北方棲姬
    我想最后問問,在構(gòu)建struct時(shí)要怎么同時(shí)用兩個(gè)名字代表它?我只會(huì)用一個(gè)名字代表新創(chuàng)的struct。比如說:struct A{};我只能命名成A,不會(huì)命名成A和*A,求大大指教!
  • AAnonymous
    AAnonymous
    不需要兩個(gè)名字。那是typdef定義的別名。 類似于。 typedef int INT; typedef int * P_INT;
  • 1 回答
  • 0 關(guān)注
  • 1035 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)