这个C代码片段在32位系统上的输出是什么

4xrmg8kj  于 2022-12-17  发布在  其他
关注(0)|答案(1)|浏览(128)
#include<stdio.h>
#include <stdlib.h>

int main() {
    char *a = malloc(sizeof(int) * 18);
    printf("%d",sizeof(a));
}

在32位系统上,的大小是多少?
我在64位系统上试过了,a是8。在32位系统上也会一样吗?

guicsvcw

guicsvcw1#

“32位”是指CPU在一条指令中可以执行的最大数据量,这实际上与同一CPU的地址总线完全没有关系,所以“32位CPU上的地址有多大”这个问题是无法回答的。
例如,市场上大多数8位CPU都有16位地址总线,许多8/16位CPU甚至支持24位或更大的地址总线。
虽然市场上绝大多数32位CPU都有32位地址总线,但这并不能保证,除非你有一个特定的CPU。

相关问题