首页 > 其他 > 详细

字符串截取问题

时间:2015-08-26 17:17:11      阅读:228      评论:0      收藏:0      [点我收藏+]
#include <iostream>
#include <stdio.h>
int main(void)
{
     char s[]="123456789";
     char d[]="123";
     strcpy(d,s);
     printf("%s,%s",d,s);
     return 0;
}
结果:
123456789,56789
解析:
在内存中分配如下:
copy前      copy后
b->1 ------> 1
     2            2
     3            3
     \0           4
s->1 ------> 5
     2            6
     3            7
     4            8
     5            9
     6            \0
     7            7
     8            8
     9            9
     \0          \0
在栈中,变量是分配是按照栈低到栈顶的,栈低地址比栈顶地址大,因为b分配空间不够,因此,在copy时向下占据a空间,则copy后内存分配如上图。

字符串截取问题

原文:http://www.cnblogs.com/striver-zhu/p/4760729.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!