当前位置: 技术问答>linux和unix
高手帮我瞧一下,这段程序有什么问题!
来源: 互联网 发布时间:2015-09-26
本文导语: 高手帮我瞧一下,这段程序有什么问题! 看疯了,自己没有找到问题, 还请各位高手多多指教!!!!!! #include #include #include #include int resolve(char *buf, int* len, char ***argv); /*将输入命令的各参数分解 思...
高手帮我瞧一下,这段程序有什么问题!
看疯了,自己没有找到问题,
还请各位高手多多指教!!!!!!
#include
#include
#include
#include
int resolve(char *buf, int* len, char ***argv);
/*将输入命令的各参数分解
思路:逐个读取字符,如果ASCII码为0或10时,终止
如读取的字符为空格,则截取
*/
int resolve(char *buf, int* len, char ***argv)
{
char *tmp;
int i = 0, j = 0;
while(0 != *(buf+i))
{
if (' ' == *(buf+i))
{
if (NULL == (**argv = malloc(j*sizeof(char))))
{
return -1;
}
**argv = tmp;
j = 0;
}
else
{
*(tmp+j) = *(buf+i);
}
}
if (NULL == (**argv = malloc(j*sizeof(char))))
{
return -1;
}
**argv = tmp;
return 0;
}
int main(void)
{
int i, len;
char *buf = "setpara ip 172.16..5.169";
char **argv;
if (-1 == resolove(buf, &len, &argv))
{
printf("resolve error!n");
return -1;
}
for (i=0; i
看疯了,自己没有找到问题,
还请各位高手多多指教!!!!!!
#include
#include
#include
#include
int resolve(char *buf, int* len, char ***argv);
/*将输入命令的各参数分解
思路:逐个读取字符,如果ASCII码为0或10时,终止
如读取的字符为空格,则截取
*/
int resolve(char *buf, int* len, char ***argv)
{
char *tmp;
int i = 0, j = 0;
while(0 != *(buf+i))
{
if (' ' == *(buf+i))
{
if (NULL == (**argv = malloc(j*sizeof(char))))
{
return -1;
}
**argv = tmp;
j = 0;
}
else
{
*(tmp+j) = *(buf+i);
}
}
if (NULL == (**argv = malloc(j*sizeof(char))))
{
return -1;
}
**argv = tmp;
return 0;
}
int main(void)
{
int i, len;
char *buf = "setpara ip 172.16..5.169";
char **argv;
if (-1 == resolove(buf, &len, &argv))
{
printf("resolve error!n");
return -1;
}
for (i=0; i