在leetcode上做一道用struct作為鍊錶節點的題目時,遇到了一次runtime error。後來排查原因,發現是在一次寫了如下的語句:
new_digit->next=(struct listnode *)malloc(sizeof(struct listnode));
new_digit=new_digit->next;
之後,沒有對這個指標的成員進行初始化,當加入下面的初始化語句:
new_digit->next=null;
new_digit->val=0;
就直接ac了。
這個問題比較難排查,當用testcase,也就是自己用樣例來測試的時候,就不會出現這樣的錯誤,可以得到正確答案。這個問題在leetcode官方的qa上也提到過,說是因為系統的原因,導致有些錯誤沒法通過自行run code解決.......
所以總的來說,還是得自己養成好的程式設計習慣,特別是對於指標,一定要初始化,至少要賦乙個null值
struct結構體初始化
參考 初始化方式 第1 種 定義時初始化 方式一 點操作符 struct a a1 方式二 struct a a1 方式三 struct a a1 核心喜歡用方式一,使用方式二和方式三時,成員初始化順序可變,使用方式三時初始化順序不可變。第2 種 在c 中,結構體與類在使用上已沒有本質上的區別了,所...
結構體struct的初始化
在c語言中,對結構體的初始化,可以有一下三種。struct test int main struct test t2 struct test t3 printf t1.a d,t1.b d n t1.a,t1.b printf t2.a d,t2.b d n t2.a,t2.b printf t3....
C 結構體初始化
今天在看mfc結構時,順便看了看 深入淺出mfc 發現有這麼一行 m pmainwnd new cmyframewnd 乍一看,很正常啊,再仔細一看,貌似 new cmyframewnd 的時候少了一對括號。奇怪!之後又翻了翻書,發現好多處都是這樣的。難道我弄錯了,不可能啊,一般情況下在new乙個新...