A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. ------<a  target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------
复制代码

    我在做基础题的时候遇到一个关于指针修改指向地址内容的问题。
题目要求输入一个字符串,如果是字母就替换成后面的三个字母,比如:2g55 替换后是:2hij55
基础视频里,老师分析内存占用的时候,说字符串地址分配是这样的,如图



代码:
  1. int main()
  2. {
  3.       char string[]="2g556";
  4.        char *p=&string[1];
  5.        p="hij";
  6.        return 0;
  7. }
复制代码
字符串在内存的地址按从上到下排列,指针p指向g所在的地址ffec6,原来存储一个字符的地址,现在改成了三个字符。会把后面地址的字符覆盖了吗?
还是从这个地址插入三个字符,后面的字符移到下面的内存地址中?或者又是以其它的存储方式在内存中存放?
请大神赐教,小弟不胜感激!

内存分配.png (2.05 KB, 下载次数: 3)

内存分配

内存分配

评分

参与人数 1黑马币 +1 收起 理由
星河鹭起 + 1

查看全部评分

1 个回复

倒序浏览
还不睡觉吗  这都几点了啊 别给累坏了:lol
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马