您的位置:首页 > 编程语言 > C语言/C++

[c进阶01]keil mdk编译器,字符串存储在数组方式,占用内存情况

2017-10-24 18:08 405 查看
测试了一下,以下4条,字符串存入数组方式下的内存分配情况。

char g[8] = "12345678";
char h[4] = "1234";
char j[ ] = "1234";
char k[1] = "2";


第一个:
char g[8] = "12345678";
内存分布图(软件debug—memory查看器):



数组g占用了8个字节,8个32位的地址。

第二个:



数组h占用了4个字节,4个32位的地址(20000524、20000525、20000526、20000527)

第三个:



数组j非常有意思,实际占用了5个字节,因为要保存\0  

而且,为了内存对齐,32位的单片机下,这个数组实际花费了8个字节的内存空间。(…51c~…523)

第四个:



数组k占用1个字节,为了内存对齐,实际花销4个字节。

另外插播个指针传值的,不论在哪,size of 指针,就是size of int,stm32里面的话就是固定值,4  32位地址,一个指针占4个字节

当然size of (*指针)就要看具体指向的东西了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c语言 字符串 数组
相关文章推荐