[问题] 新手试解leetcode的问题(已解决)

楼主: mouwat (QQ)   2019-08-29 11:03:24
最近边看C的书想说边试着一些简单的leetcode
1108. Defanging an IP Address
https://leetcode.com/problems/defanging-an-ip-address/
错误截图

在解的时候虽然有想法了 但是编译不过
不太确定语法哪里有问题所以想请大家指点一下
程式码(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