码迷,mamicode.com
首页 > 其他好文 > 详细

字符串截取问题

时间:2015-08-26 17:19:18      阅读:160      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!