景芳二区规划:c中的指针

来源:百度文库 编辑:高考问答 时间:2024/04/27 14:35:25
我在网上看到一个这样的题:
在一个32位的操作系统中,设void *p=malloc(100)。请问sizeof(p)结果是多少?我运行结果是2,谁能告诉为什么是2,这和32位的操作系统有什么关系吗?而且就算是double *p=malloc(100)结果也是2。double类型不是占8个字节吗?

你在TC下做的吧, 那是DOS下的16位操作系统, 地址所占空间为2个字节, 如果你在vc下做, 则为4, 因为是32位操作系统.

上面的回答很正确啊,支持!

sizeof是计算变量类型的函数,在32位的操作系统中内存的地址就是2个字节.和p指针指的什么变量没关系的.所有的指针都应该是2.

你在TC下做的吧, 那是DOS下的16位操作系统, 地址所占空间为2个字节, 如果你在vc下做, 则为4, 因为是32位操作系统. sizeof是计算变量类型的函数,在32位的操作系统中内存的地址就是2个字节.和p指针指的什么变量没关系的.所有的指针都应该是2.
sizeof是计算变量类型的函数,在32位的操作系统中内存的地址就是2个字节.和p指针指的什么变量没关系的.所有的指针都应该是2.
sizeof是计算变量类型的函数,在32位的操作系统中内存的地址就是2个字节.和p指针指的什么变量没关系的.所有的指针都应该是2.
sizeof是计算变量类型的函数,在32位的操作系统中内存的地址就是2个字节.和p指针指的什么变量没关系的.所有的指针都应该是2.

不是,无论如何 指针所占用的空间都是固定的.
32位的程序这个指针是4字节,16位的是2字节.

你可能用的是TC什么的吧?所以是2,
如果用VC的话就能得到4了.