鱼C论坛

 找回密码
 立即注册
查看: 4342|回复: 3

c语言的一道题,不知道为什么会段错误

[复制链接]
发表于 2013-1-7 15:57:30 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 Welen_Who 于 2013-1-7 16:38 编辑

#include<stdio.h>
void sub(char*s,int num)
{
int i ,j=num;
char t;
while(j-->1)
{//-------------------------------
   for(i=0;i<j;i++)
   {
     if(s[i][i][i]<s[i+1])
     {
       t=s[i][i][i];
       s[i][i]=s[i+1];[/i][/i][i][i]
       s[i+1]=t;
     }
   }
[/i][/i]
[i][i][i][i][i][i][i][i][i]//-----------------------------
}
}
int main()
{
char *s="CEAeded";
sub(s,6);
printf("%s\n",s);
return 0;
}
调试后发现在红色位置时出错了,s和s[i+1]都是正常的,不知道原因,知道的麻烦说明一下,谢谢![/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][i][i][i][i][i][i][i][i][i][i][i][i][i][i]不知道为什么,“s[i+1-1][i]”会被显示为“s”,多次改动都不行,所以注明一下,两条线之间的s都要换成“s[i+1-1]
[/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i]
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2013-1-7 16:03:21 | 显示全部楼层
怎么回事啊,s方框i无法显示,所以打成加一后减一
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-1-7 16:52:29 | 显示全部楼层
  1. #include<stdio.h>
  2. void sub(char*s,int num)
  3. {
  4. int i ,j=num;
  5. char t;
  6.         while(j-->1)
  7.         {//-------------------------------
  8.            for(i=0;i<j;i++)
  9.            {
  10.                  if(s[i]<s[i+1])
  11.                  {
  12.                    t=s[i];
  13.                    s[i]=s[i+1];
  14.                    s[i+1]=t;
  15.                  }
  16.            }
  17.         //-----------------------------
  18.         }

  19. }
  20. int main()
  21. {
  22. char s[8]="CEAeded";
  23. sub(s,6);
  24. printf("%s\n",s);
  25. return 0;
  26. }
复制代码
兄台 ,,这是我给你改的
它的错误是First-chance exception in XX.exe: 0xC0000005: Access Violation.
我查了下 , 应该是你把指针党当数组首地址用不行 , 因为这样的话这个数组就没有一定的范围 , 额……貌似是数组越界导致的运行错误吧
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2013-1-7 18:02:23 | 显示全部楼层
楼上的兄弟谢谢了,你的更改让我想明白了,不是数组越界导致的,有num控制了,是因为char *s="CEAeded";返回的s地址是字符串常量地址,也就是只读的数据段地址,是不可更改。任何更改都回导致错误。
小甲鱼最新课程 -> https://ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-8-9 12:14

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表