范围内有多少值/空间可以在一个指针分配。有没有办法找到可能的总分配数量。什么是指针存储在c
0
A
回答
2
据我所知,在C中只保留了NULL
值(“零”,但不一定是全零位),所以指针类型的数字空间值的其余部分都是有效的指针地址,尽可能C语言是担心,但在特定平台上然后许多附加的规则适用,这将降低可用存储空间(如存储器映射的IO,例如)。 (请注意,我假设你正在谈论的是一个平坦的内存空间,就像我们用真正的32位编程一样,而不是像16位编程的日子那样,你的指针和指针都是near
和far
以及各种内存黑客)。
扩大对我的“特定平台”的说明,在32位Windows the user-process address space is 2 GiB(0x000000
至0x7FFFFFFF
),而不是4GiB因为在Windows 32位指针的高位被保留(除非你指定IMAGE_FILE_LARGE_ADDRESS_AWARE
标志)。关于分配的总数:(例如,你可以分配一个字节缓冲区多少次)然后这取决于分配器的实现和父操作系统,因为每个分配都有空间开销(有很多不同的方法来实现一个alocator,具有不同的结构和算法),所以我不能作一般性说明。
+0
其他细节需要注意的是任何非字符类型(甚至一些字符类型)填充和对齐要求。 – Sebivor
相关问题
- 1. 在C和C++中,const指针指针指的是什么?
- 2. 指针存储在C中
- 3. 在C中使用calloc时,存储在指针地址的内容是什么?
- 4. 无指针的C++动态内存分配 - 指针的指向是什么?
- 5. 什么是指向指针的指针?
- 6. 存储指针
- 7. typedef将指针存储在C中
- 8. 在Union(C)中存储函数指针
- 9. 什么是存储二维数组指针的方法?
- 10. 什么是C中的单例指针?
- 11. 什么是C++中的桶指针?
- 12. C中的这个指针是什么?
- 13. 什么是C++中的丰富指针
- 14. C分配了指针?这是什么?
- 15. C++什么是空指针值?
- 16. 什么是C++中的void指针?
- 17. 什么是强指针和弱指针
- 18. 指针指针的意义是什么?
- 19. 指针指针是什么意思?
- 20. 指针指针的语法是什么?
- 21. 指针存储在指定字符串时的地址是什么?
- 22. 什么是 “@” 是指在C#
- 23. 什么是*是指在C
- 24. 在NSButton中存储指针
- 25. 在类中存储指针
- 26. 在memcached中存储指针
- 27. iOS存储指针
- 28. 什么是悬挂指针
- 29. 什么是函数指针?
- 30. 什么是裸指针?
原则之间,也就是说,两个'在对象的对象表示char'指针的差异必须是'ptrdiff_t'表示的,所以,给你一个上限。但这可能不是现代系统的现实界限。 –
你问一个变量可以多少内存持有?或一般有多少内存? – user2896976
是的,因为它取决于配置。有什么方法可以计算出来吗? – BhaveshSGupta