Win*_*ins 2 c 64-bit gcc callstack
我想问一下64位ubuntu Linux中的内存分配问题.
我有以下代码
#include <stdio.h>
#include <string.h>
int main(int argc, char *argv[]) {
char buffer_one[8], buffer_two[8];
printf("Size of char: %u\n", sizeof(char));
printf("Buffer_two is at %p\n", buffer_two);
printf("Buffer_one is at %p\n", buffer_one);
}
Run Code Online (Sandbox Code Playgroud)
当它运行时,会显示以下结果
$ ./sizeofchar
Size of char: 1
Buffer_two is at 0x7fff98069910
Buffer_one is at 0x7fff98069900
Run Code Online (Sandbox Code Playgroud)
我的问题是,即使char类型的大小是1字节,我假设(如果我在这里错了请纠正我)Buffer_two并且Buffer_one彼此相邻分配,为什么Buffer_two和Buffer_one内存地址分配16个字节.
| 归档时间: |
|
| 查看次数: |
960 次 |
| 最近记录: |