簡體   English   中英

如何使用malloc為結構分配內存?

[英]How do you use malloc to allocate memory for a structure?

我程序的目標是讀取文件,並輸出具有最大出現次數和出現次數的單詞。 但是我對malloc及其語法有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))


編輯:

對於那些對編譯器版本/ OS /等感興趣的人:Windows 7 64bit,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));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM