快来看,高分啊!!!!!!!!!!!!!!!!!!!!!!!!!

mjfsun 2003-11-28 03:08:52
我有一个程序如下,这是简化版本:

int fuc1(char* a[])
{
int i;
char* b[];
for(i=0;*a!=NULL;i++)
{
printf("a[%d]==%s",i,a[i]);
b[i]=strdup(a[i]);
printf("b[%d]==%s",i,b[i]);
}
return 0;
}

int fuc2()
{
char* string[]={"firststring","secondstring","thirdstring",NULL};
fuc1(string);
return 0;
}

int main()
{
fuc2();
return 0;
}


但是执行之后什么也没有,我很奇怪.希望高手解决,谢谢!!!!
...全文
29 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
ftp123 2003-12-02
  • 打赏
  • 举报
回复
可以改成char * string 和char * a!!
ftp123 2003-12-02
  • 打赏
  • 举报
回复
不可能,虽然有个bug,但是输出还是应该有的。
我想前面几个是楼主想要的,后面就是一些乱的符号啦!
char * string[],问题应该出在这里。
这是一个指针数组,所以在这里楼主得不到你想要的东西,它不可能与null相比。
唯一可以解释的应该是,这个for根本就没有执行。
Goldbach 2003-11-30
  • 打赏
  • 举报
回复
同意楼上的上上楼!
hhlong 2003-11-30
  • 打赏
  • 举报
回复
同意楼上的上上楼!
gzgjx 2003-11-29
  • 打赏
  • 举报
回复
像这种问题只要在TC下使用F7或F8就可发现问题的所在。
建议贴主:如果不使用返回值的话,返回值就不会有意义。可以不要,完全可以用void代替。
并不是所有的程序一定要有返回值。
adog03 2003-11-29
  • 打赏
  • 举报
回复
up
pking2002 2003-11-29
  • 打赏
  • 举报
回复
同意楼上
bohut 2003-11-28
  • 打赏
  • 举报
回复
问题在于你的for循环里的判断条件:*a!=NULL
*a=a[1],这个条件始终满足,所以你的程序会死循环。*a表示字符串数组的第一个元素的内容
bohut 2003-11-28
  • 打赏
  • 举报
回复
#include <stdio.h>
#include <string>

int fuc1(char* a[])
{
int i;
char *b[10];
for(i=0;*(a+i)!=NULL;i++)
{
printf("a[%d]==%s\n",i,a[i]);
b[i] = strdup(a[i]);
printf("b[%d]==%s\n",i,b[i]);
}
return 0;
}

int fuc2()
{
char* string[]={"firststring","secondstring","thirdstring",NULL};
fuc1(string);
return 0;
}

int main()
{
fuc2();
return 0;
}

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧