c - 两种情况下指针的内存分配相同吗?

标签 c

两种情况下指针的内存分配是否相同

struct_datatype * p=NULL;

struct_datatype * p=malloc;

除了从堆栈和堆分配内存之外??

最佳答案

在第一种情况下,指针被初始化为指向地址 0,因此如果访问指针指向的数据,则会出现 0 指针异常,因为指针不指向可访问的内存位置。< br/>

第二种情况,p=(struct_datatype *)malloc(sizeof(struct_datatype));内存已分配并分配给指针,因此您可以通过 p 访问该内存,例如如果 x 是结构体中的 int 字段,则可以通过 p->x=123

设置此 x

关于c - 两种情况下指针的内存分配相同吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13914704/

相关文章:

c - 使用 kqueue 的 TCP 服务器 worker

c - 使用尺寸 8 Valgrind 的未初始化值

c - 关闭堆栈保护

使用 frama-c 的值分析计算函数的可达性

c - 在 OpenCV 中显示来自网络摄像头的视频

c - 是否可以混合使用 C 和 Swift?

c++ - cmake add_custom_target 转义

c - 函数average 和stdDev const int tab[ ]。一般问题

c - SSE int vs. float 练习

c - time(NULL) 在 PIC-IoT WG 开发板上返回 0