黑马程序员技术交流社区

标题: 黑马程序员-----指针修改导致的内存分配问题 [打印本页]

作者: champion    时间: 2014-11-28 01:59
标题: 黑马程序员-----指针修改导致的内存分配问题
  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, 下载次数: 2)

内存分配

内存分配

作者: 天空总是很蓝    时间: 2014-11-28 02:26
还不睡觉吗  这都几点了啊 别给累坏了:lol




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2