gpt4 book ai didi

c - 结构体标签和结构体指针相同吗?

转载 作者:行者123 更新时间:2023-11-30 14:54:20 25 4
gpt4 key购买 nike

结构体标签和结构体指针有什么区别?是相同的?或者这是我的示例,obj 和 *var 是两个不同的内存位置吗?

#include <stdio.h>
#include <stdlib.h>

struct alloc {

char data;
};

int main(int argc, char** argv) {

struct alloc obj;
struct alloc *var = calloc(5,sizeof(struct alloc));
(var -> data) = 'P';
printf("Data:%d",obj.data);

return (EXIT_SUCCESS);
}

最佳答案

是的,他们是。 obj 的内存是静态分配的(在堆栈上),而 var 的内存是动态分配的(在堆上)。主要的实际区别是,静态分配的对象在 block 末尾被销毁,但您必须手动释放动态分配的对象的内存(以防止内存泄漏)。

您可以找到有关此主题的更多信息 here .

关于c - 结构体标签和结构体指针相同吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46855079/

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