【发布时间】:2013-04-01 00:32:38
【问题描述】:
不知道怎么回事,每次在下面的代码中输入第二个字符串,都会弹出一个错误框。我正在使用 Codeblocks 作为编译器。是因为我使用指向指针的指针吗?
#include<stdio.h>
#include<conio.h>
void sort_string(char **) ;
void main()
{
char *name[5] ;
int x =0;
printf("Enter Names");
for(x = 0 ; x < 5 ; x++)
{ fflush(stdin);
fgets( name[x], 100, stdin);
}
sort_string(name);
for( x = 0 ; x < 5 ; x++)
{
puts(name[x]);
}
}
void sort_string(char *name[5])
{
char *temp;
int i , j ;
for ( i = 4 ; i >=0; i--)
{
for ( j = 0 ; j <=i; j ++ )
{
if(strcmp(name[j] > name[j+1]))
{
temp = name[j+1];
name[j+1] = name[j];
name[j] = temp;
}
}
}
}
【问题讨论】:
-
fflush(stdin);是一个未定义的操作......你在哪里分配内存来存储你正在阅读的这些字符串? -
name[x] 是指针,需要分配内存。
-
您能否解释一下您在此声明背后的目标
strcmp(name[j] > name[j+1]),因为这在语法上不正确。
标签: c string pointers bubble-sort