gpt4 book ai didi

c - 如何使用 malloc 为结构分配内存?

转载 作者:太空狗 更新时间:2023-10-29 15:02:11 24 4
gpt4 key购买 nike

我的程序的目标是读取一个文件,并输出出现次数最多的单词,以及出现的次数。但是我对 malloc 及其语法有疑问。这是 malloc 引用的结构:

struct Word_setup {
char word[max_length];
int count;
};

我的主要部分帮助我发现这是我的错误:

    printf("Pre-Allocation Test");

struct Word_setup *phrase;

phrase = (struct Word_setup *) malloc(SIZE);

if (phrase == NULL)
{printf("Failure allocating memory"); return 0;}

它似乎只是打印出来,Pre-Allocation Test,然后就死机了。正如我之前所说,我不清楚如何解决此问题,但我已将其隔离。

*如果您想知道 SIZE 是什么:

#define SIZE (sizeof(phrase))


编辑:

对于那些对编译器版本/操作系统/等感兴趣的人:Windows 7 64 位,GCC 4.9.2

如果您想了解更多信息,请告诉我。

最佳答案

phrase = (struct Word_setup *) malloc(SIZE);

应该是

phrase =  malloc(sizeof(struct Word_setup));

你拥有的是

#define SIZE (sizeof(phrase)) 

会给你指针的大小而不是结构的大小。您还可以使用更通用的内存分配方法

type *p = malloc(sizeof(*p));

关于c - 如何使用 malloc 为结构分配内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29753836/

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