危笑丶依旧啊 2021-12-26 12:37 采纳率: 100%
浏览 18
已结题

为什么当我输入超过20个字符时,不会显示烫的错误呢?不是已经超出我定义的字符数组长度了吗

为什么当我输入超过20个字符时,不会显示烫的错误呢?不是已经超出我定义的字符数组长度了吗
问题相关代码,请勿粘贴截图
运行结果及报错内容
我的解答思路和尝试过的方法
这是程序是用来给输入的字符串每两个字符之间相隔一个空格用的。
#include<stdio.h>
int main()
{
 char *insert(char *s1,char *s2);
 char string1[20],string2[60];
 char *s1=string1,*s2=string2;
 printf("input zifuchuan\n");
 gets(s1);
 puts(insert(s1,s2));
 return 0;
}
char *insert(char *s1,char *s2)
{
 int i;
 for(i=0;*(s1+i)!='\0';i++)
 {
  if(*(s1+i+1)!='\0')
  *(s2+2*i+1)=' ';
  else *(s2+2*i+1)='\0';
  *(s2+2*i)=*(s1+i);
  
 }
 return(s2);
}

  • 写回答

1条回答 默认 最新

  • 五一编程 2021-12-26 13:39
    关注

    是因为内存地址是顺序分配的,所以,字符串指针一样可以指向超出字符数组长度的数据,但是这样的数据是没有保证的,不建议使用

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 1月3日
  • 已采纳回答 12月26日
  • 创建了问题 12月26日

悬赏问题

  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 关于大棚监测的pcb板设计
  • ¥15 stm32开发clion时遇到的编译问题
  • ¥15 lna设计 源简并电感型共源放大器
  • ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)