Konno__Yuuki 2021-09-23 21:22 采纳率: 78.6%
浏览 16
已结题

如果一个字符串内存不足可以补充吗

img


按理说,不知道s1的内存大小,需要用strlen(s2)+1来给s1分配内存。但当我给s1赋上“a”后,s1应该只有两个字符的内存,但是程序仍然能够运行。内存分配的机制是什么?内存不够还可以再补充吗?

  • 写回答

2条回答 默认 最新

  • 广大菜鸟 2021-09-23 21:26
    关注

    char s1[]="a";
    给它分好内存位置了,但是你如果对后面(s1+2)的指针进行操作,实际上已经是内存溢出了,理论上是不允许的。
    你可以用动态数组的方式,calloc()这个函数可以扩充,重新分配个内存空间给这个数组

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 10月14日
  • 已采纳回答 10月6日
  • 创建了问题 9月23日

悬赏问题

  • ¥15 pic16F877a单片机的外部触发中断程序仿真失效
  • ¥15 Matlab插值拟合差分微分规划图论
  • ¥15 keil5 target not created
  • ¥15 C/C++数据与算法请教
  • ¥15 怎么找志同道合的伙伴
  • ¥20 如何让程序ab.eXe自已删除干净硬盘里的本文件自己的ab.eXe文件
  • ¥50 爬虫预算充足,跪巨佬
  • ¥15 滑块验证码拖动问题悬赏
  • ¥15 Wanted but not invoked:Actually, there were zero interactions with this moc
  • ¥20 怎么驱动tb6612