char * str[5];
int i;
for(i=0;i<5;i++)
{
scanf("%s",str); // 这里这么写 正确吗 为什么?
}
我这样写的 在接受时 没异常 但 后面接着输出 就出异常!!!
[求助]字符指针数组能动态赋值吗?
char * str[5];
int i;
for(i=0;i<5;i++)
{
scanf("%s",str); // 这里这么写 正确吗 为什么?
}
我这样写的 在接受时 没异常 但 后面接着输出 就出异常!!!
2006-11-21 20:16
2006-11-21 20:30
2006-11-21 21:27
2006-11-22 09:13
2006-11-22 12:57
没给解决办法啊 str[i] 这样接收时 就出现异常可以我接收啊!
试试下面的小程序
main()
{ char * str[5];
int i;
for(i=0;i<5;i++)
{
scanf("%s",str[i]);
}
printf("%s,%s",str[1],str[3]);
getch();
return 0;
}
INPUT
follow
basic
great
fortran
computer
OUTPUT
basic,fortran
我用的是wintc2.01编译的,没有错

2006-11-22 13:02
2006-11-22 13:16
请问,可以给出详细的解释吗?
不是很了解!
谢谢!

2006-11-22 13:21
不是内存泄漏,而是没有分配内存,这是很危险的
只声明了指针数组,但是没有给数组中的各指针分配一个可以存储字符串的内存单元
可改为
main()
{ char str[5][10];
int i;
for(i=0;i<5;i++)
{
scanf("%s",str[i]);
}
printf("%s,%s",str[1],str[3]);
getch();
return 0;
}

2006-11-22 13:32
2006-11-22 20:14