我是使用 C 的 2 个月大的孩子。我有一个简单的问题,就是将 ip-range 作为参数传递给 main 函数并获得一个带有独立 ips 的数组。
例如。func-ip-range 应该将 1.1.1.1-10 作为 argv 并返回一个数组 [1.1.1.1, 1.1.1.2, 1.1.1.3 ......... 1.1.1.10]。
我解决这个问题的方法如下,我无法调试“分段错误”,因为我不知道代码在哪里阻塞。
非常感谢任何帮助来拯救这个孩子。
方法是将命令行参数传递给 *ip_str 并逐字符读取此字符串。一旦我遇到第一个'。我增加计数'c',当计数c == 3时,我想将字符串从那里存储到一个新的字符串变量,直到我达到'-',然后在达到'-'之后将字符串的其余部分存储到一个新的字符串中。但是我对程序编写和调试的接触有严重的问题。
除此之外如何解决问题的方向对我的学习非常有帮助。
void array_ip(char *ip_str,char **iplist)
{
for(i=0,j=0;*(ip_str+i) != '\0';i++)
{
if(*(ip_str+i)=='.')
{c++;
}
if(c==3 && (*(ip_str+i )!= '-'))
{
*(a+j) = *(ip_str+i);
j++;
}
if(*(ip_str+i) == '-')
{
break;
}
}
for(k=0;*(ip_str+i) != '\0';k++,i++)
{
*(b+k)=*(ip_str+i);
}
printf("the starting last octet is %s \n",a);
printf("the Ending last octet is %s \n",b);
}