危笑丶依旧啊 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 asp.textbox后台赋值前端不能显示什么原因
  • ¥15 宇视监控服务器无法登录
  • ¥15 PADS Logic 原理图
  • ¥15 PADS Logic 图标
  • ¥15 电脑和power bi环境都是英文如何将日期层次结构转换成英文
  • ¥15 DruidDataSource一直closing
  • ¥20 气象站点数据求取中~
  • ¥15 如何获取APP内弹出的网址链接
  • ¥15 wifi 图标不见了 不知道怎么办 上不了网 变成小地球了
  • ¥50 STM32单片机传感器读取错误