字符串截取問題


#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后內存分配如上圖。

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com