自己寫的乙個鍊錶程式,用gcc編譯正常執行,用vs2013一直報異常。終止,除錯了很久,終於發現了錯誤。
classperson
;
classstate
;
typedefstruct
tagstatenodestatenode,*pstatenode;
classlinkstate;
typedefstruct
tagnodenode,*pnode;
classlinkperson;
在main 函式中
定義 linkstate linkstate;
然後 linkstate.push(const person&); //輸入乙個person物件到linkstate乙個state裡面的linkperson鍊錶裡面
vs2013報錯,gcc執行正常
除錯發現原因 過程中都使用的(pnode) malloc(sizeof(node));和(pstatenode) malloc(sizeof(statenode));來建立鍊錶
由於linkstate是乙個物件,定義linkstate linkstate;呼叫了預設建構函式,linkstate中的head 和tail都被初始化為null了
但是每個state節點中的linkperson卻是用malloc(sizeof(node));分配出來的,無法呼叫建構函式,因此出現了這個執行錯誤
找了很久,最終發現不適用(pstatenode)malloc(sizeof(statenode));,而使用temp = new statenode();,這樣就呼叫了state key
的建構函式,使state key中的linkperson lp;得到了初始化,lp中的head和tail為null
修改後一切執行正常
c語言 鍊錶 員工管理系統 vs2013
部分 define crt secure no warnings include include include typedef struct team 結構體 員工資訊 team typedef struct node 建立單鏈表 node node phead null 頭節點 node end...
vs2013 後期生成事件編譯失敗
今天有特殊需求,要用到vs的後期生成事件,我試了下mkdir projectdir abc發現便宜不過,報告錯誤 錯誤 6 命令 mkdir em.webui abc 已退出,為 1。我還以為是路徑不能有空格,但是後來測試了下,發現要這樣子寫 mkdir projectdir abc xcopy p...
鍊錶無法讀取記憶體 C 陣列和鍊錶的區別
插入 或刪除 乙個元素 鍊錶 不需要改變記憶體的位址,只需要修改節點的資訊即可 包括指標指向,節點值 光討論插入這個操作的話,平均時間複雜度是o 1 但是如果不知道插入 或刪除 的位置的時候,找到該位置的平均時間複雜度是o n 所以整個插入 或刪除 操作的平均時間複雜度也是o n 擴充套件性 查詢陣...