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

来源:互联网 发布:tomcat怎么看端口 编辑:程序博客网 时间:2024/06/03 11:28

测试了一下,以下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 (*指针)就要看具体指向的东西了

阅读全文
0 0