[英]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.