求解,编译没问题,但是运行就结束进程

qq_32034695 2015-10-16 04:10:27
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#include<string.h>
#define num 100
main()
{char *a[15]={"xiangtuo"};
char **p;

p=a;
sort(p,15);
printf("%s",a);





}

sort(char *a[],int n)
{int i,j;char *t;


for(i=0;i<n;i++)

{
for(j=i+1;j<n;j++)

{
if(strcmp(a[i],a[j])>0)


{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}




}
}
...全文
152 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
橘风之轮 2015-10-17
  • 打赏
  • 举报
回复
你想要表达啥不太理解,主要在两点: 1.char *a[15]={"xiangtuo"};,这个是指针数组,也就是说,a[0]就是char*元素指向“xiangtuo”,所以sort(char *a[],int n),这个里面穿的n为啥不是1而是15? 2.printf("%s",a),这个肯定有问题,估计是乱码 你可以重新整理下你的思路,想下到底要做啥?
paschen 2015-10-17
  • 打赏
  • 举报
回复
因为你这程序不到1秒就运行完了,竟然退出了,在程序最后加上getchar(); 表示等待用户输入一个字符
风忧凉 2015-10-16
  • 打赏
  • 举报
回复
getchar();
diligent_snail 2015-10-16
  • 打赏
  • 举报
回复
a里面放的是指针变量a[0]的地址,printf(“%s”,a)能输出字符串吗……
qldsrx 2015-10-16
  • 打赏
  • 举报
回复
你只初始化了数组的第一个元素,15个字符串,只有第一个是有值的,后面14个全部为NULL,对NULL调用strcmp函数,直接引发内存崩溃。
赵4老师 2015-10-16
  • 打赏
  • 举报
回复
代码功能归根结底不是别人帮自己看或讲解或注释出来的;而是被自己静下心来花足够长的时间和精力亲自动手单步或设断点或对执行到某步获得的中间结果显示或写到日志文件中一步一步分析出来的。 提醒:再牛×的老师也无法代替学生自己领悟和上厕所! 单步调试和设断点调试(VS IDE中编译连接通过以后,按F10或F11键单步执行,按Shift+F11退出当前函数;在某行按F9设断点后按F5执行停在该断点处。)是程序员必须掌握的技能之一。
angel6709 2015-10-16
  • 打赏
  • 举报
回复
for(i=0;i<n-1;i++)

69,369

社区成员

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

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