gpt4 book ai didi

c - C中指针内存的范围是多少

转载 作者:太空宇宙 更新时间:2023-11-04 08:07:07 26 4
gpt4 key购买 nike

一个指针可以分配多少个值/空间。有没有办法找到可能的分配总数。

最佳答案

据我所知,只有NULL值(“零”,但不一定全是零位)在C中保留,所以指针类型的其余数字空间值都是就 C 语言而言,指针地址是有效的,但在特定平台上,许多附加规则适用,这将减少可用内存空间(例如内存映射 IO)。

(请注意,我假设您是在谈论平坦的内存空间,就像我们在真正的 32 位编程中所拥有的那样,而不是像 16 位编程时代那样nearfar 指针和各种内存 hack)。

在 32 位 Windows 上扩展我的“特定平台”说明 the user-process address space is 2 GiB (0x0000000x7FFFFFFFF)而不是 4GiB,因为 Windows 中 32 位指针的高位被保留(除非您指定 IMAGE_FILE_LARGE_ADDRESS_AWARE 标志).

至于分配的总数:(例如,您可以分配一个字节缓冲区多少次)然后这取决于分配器的实现 - 以及父操作系统,因为每次分配都有空间开销(有有许多不同的实现分配器的方法,具有不同的结构和算法)所以我不能做一个笼统的陈述。

关于c - C中指针内存的范围是多少,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42047938/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com