[問題] 新手試解leetcode的問題(已解決)

作者: mouwat (QQ)   2019-08-29 11:03:24
最近邊看C的書想說邊試著一些簡單的leetcode
1108. Defanging an IP Address
https://leetcode.com/problems/defanging-an-ip-address/
錯誤截圖
https://imgur.com/lC1ovhg
在解的時候雖然有想法了 但是編譯不過
不太確定語法哪裡有問題所以想請大家指點一下
程式碼(Code):(請善用置底文網頁, 記得排版,禁止使用圖檔)
char Defang_Result[22];
char * defangIPaddr(char * address){
int count_1=0, count_2=0;
for(count_1=0;count_1<22;count_1++){
if(*(address+count_1)!='.'){
Defang_Result[count_2]=*(address+count_1);
count_2++;
}
else{
Defang_Result[count_2]='[';
count_2++;
Defang_Result[count_2]='.';
count_2++;
Defang_Result[count_2]=']';
count_2++;
}
}
return (Defang_Result);
}
補充說明(Supplement):
Leetcode
1108. Defanging an IP Address
C language
感謝熱心的cutekid教學
在把該行修改後已可跑出結果
for(count_1=0;count_1<strlen(adress);count_1++){
原因應為對adress超出範圍的讀取造成access violation
作者: ko27tye (好滋好滋)   2019-08-29 11:32:00
先猜Defang_Result[22]沒初始化讀到怪東西
作者: mouwat (QQ)   2019-08-29 11:39:00
第一組測試值是1.1.1.1 我有試宣告長度14剛好答案長度但還是有問題
作者: idiont (supertroller)   2019-08-29 12:27:00
runtime error不是編譯錯誤 是執行過程錯誤 可能是陣列超出範圍造成的count1應該跑到字串結尾就要結束了 不然再跑下去count2可能就超出範圍了
作者: mouwat (QQ)   2019-08-29 12:37:00
謝謝你 我會先查一下access violation相關的東西以後這類長度未知的變數也會多注意
作者: dces4212 (flawless)   2019-09-01 01:00:00
不用查 就單純OOB access 注意不要犯就好

Links booklink

Contact Us: admin [ a t ] ucptt.com