“输入3个字符串,按由小到大的顺序输出”用指针的方法我运行后出问题 下面是我写的 用2维字符数组 出错

#include <stdio.h>
#include <string.h>
void main()
{
void sort(char * num[], int n);
void print(char * num[], int n);
char *num[3]; int i;
printf("请输入3组字符串");
for(i=0;i<3;i++)
gets(&num[i]);
sort(num,3);
print(num,3);

}
void sort(char * num[], int n)
{
char * temp;
int i,j,k;
for (i=0;i<n-1;i++)
{
k=i;
for (j=i+1;j<n;j++)
if(strcmp(num[i],num[k])>0)k=j;
if(k!=i)
{
temp=num[i];num[i]=num[k];num[k]=temp;
}

}

}
void print(char * num[], int n)
{
int i;
for (i=0;i<n;i++)
{
printf("%s\n",num[i]);
}

}

你这里哪里有二维数组啊,只有指针数组。
所以你根本没有空间储存你传入的字符串。

要不你就用malloc来动态申请内存,要不就申请二维数组追问

指针数组 当作2维用的 用不好 指针感觉比较灵活

追答

都给你说了,你这里只有指针没有空间储存你传入的字符串
就像你去开了个房间,给你了个房卡,但是没这个房间,请问你住哪里?

顺便你还是应该好好搞搞清楚二维数组和指针数组的异同

温馨提示:答案为网友推荐,仅供参考
相似回答
大家正在搜