看板 C_and_CPP 關於我們 聯絡資訊
語言:C++ 編譯器:在leetcode上 我也不知道編譯器是什麼 問題(Question): 小弟在刷leetcode中嘗試用二元樹解決一個題目 樹的結構長這個樣子 struct tree{ tree *r; tree *l; int val; int count; }; 當這個樹要traversal時 只要樹中有超過二個元素,就會有這個error Line 32: member access within misaligned address 0x000300000001 for type 'struct tree', which requires 8 byte alignment 看敘述貌似是資料的儲存空間對應不起來 void traversal(tree *node , vector<int> &solution){ if(node->count==1) solution.push_back(node->val); (←line32) if(node->r) traversal(node->r,solution); if(node->l) traversal(node->l,solution); } 可是明明都是宣告int? 下面是完整程式碼 https://drive.google.com/open?id=0B2_MLdF4iY1lbWZ4NFNtZ0VDdkk -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.141.10.18 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1488723126.A.5ED.html ※ 編輯: worcdlo (223.141.10.18), 03/05/2017 22:14:35
jerryh001: 會不會是沒有檢查node是null的狀況 03/05 22:31
worcdlo: 不會阿 遞迴不是有if嗎 if(node->r) 03/05 22:33
worcdlo: 我在考慮 leetcode能用new自己拉空間嗎? 03/05 22:35
ilikekotomi: 要不要整段code貼過來 這樣版上的高手們 03/05 22:41
ilikekotomi: 比較容易發現問題 03/05 22:41
※ 編輯: worcdlo (223.141.10.18), 03/05/2017 22:49:08
shadow0326: r和l有初始化嗎 03/05 22:58
worcdlo: 你是指自己令他為NULL? 沒有 03/05 23:00
worcdlo: Accepted了... 感謝 03/05 23:02
※ 編輯: worcdlo (223.141.10.18), 03/05/2017 23:04:07