c中指针指向什么类型的内存?
What type of memory is pointer pointing to in c?
我试图更深入地理解指针,但我遇到了一种情况,我不知道指针指向什么类型的内存。我是否理解正确,如果指针通过 malloc()
或 calloc()
指向动态分配的变量,那么指针指向 RAM 并且如果有静态数组或一些变量然后指针指向内存(SSD/HDD)?
没有。从概念上讲,所有内存都是 RAM,从管理它的 OS 借用(如果有 OS)。 statics/globals 和动态内存之间的区别在于 statics/globals 被设计为永远不会 returned 到 OS 直到程序 exits/dies 而动态分配的内存(malloc
/calloc
/mmap
) 在概念上是 returnable,这就是 free
/munmap
的用途。
(请注意,当您 free
malloc
'd/calloc
' 内存时,您仅 return 进入您的 C 标准库,其中 return 自行决定将其发送给 OS(如果有的话)。)
我试图更深入地理解指针,但我遇到了一种情况,我不知道指针指向什么类型的内存。我是否理解正确,如果指针通过 malloc()
或 calloc()
指向动态分配的变量,那么指针指向 RAM 并且如果有静态数组或一些变量然后指针指向内存(SSD/HDD)?
没有。从概念上讲,所有内存都是 RAM,从管理它的 OS 借用(如果有 OS)。 statics/globals 和动态内存之间的区别在于 statics/globals 被设计为永远不会 returned 到 OS 直到程序 exits/dies 而动态分配的内存(malloc
/calloc
/mmap
) 在概念上是 returnable,这就是 free
/munmap
的用途。
(请注意,当您 free
malloc
'd/calloc
' 内存时,您仅 return 进入您的 C 标准库,其中 return 自行决定将其发送给 OS(如果有的话)。)