gpt4 book ai didi

C指针查询

转载 作者:行者123 更新时间:2023-11-30 21:26:01 24 4
gpt4 key购买 nike

struct list{
int a,b,c;
struct list *next, *previous;
}

现在我需要知道两种情况下分配的内存的差异:

1) struct list *ptr = (struct list*)malloc(sizeof(struct list*));

2) struct list *ptr = (struct list*)malloc(sizeof(struct list));

最佳答案

您已将同一行键入两次。两者是相同的。

struct list *ptr = (struct list*)malloc(sizeof(struct list*));

这里您已经分配了大小为sizeof(struct list*)的内存

这里 struct list * 是指向 struct list 类型的指针。所以任何指针在 32 位机器上的大小都是 4 字节,在 64 位机器上是 8 字节。

所以你已经分配了那么多内存。

我认为在第二个选项中你可能想问这个

struct list *ptr = (struct list*)malloc(sizeof(struct list));

这里您已经分配了内存,其大小是该结构列表的大小。

关于C指针查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23106068/

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