簡體   English   中英

如何為結構體的字段動態分配內存?

[英]How do I dynamically allocate memory for the field of a struct?

我有這個哈希結構:

typedef struct _TD_ {
    int size;       /* the size of the v */
    ALG v;          /* the table elements */
} TD;

和一個列表結構:

typedef struct cellista{
    void *info;
    struct cellista *next;
} TcelulaG, *TLG, **ALG;

以及info指向的結構:

typedef struct cuv{
    int frecv;
    char *s;
}word;

在程序內部的某個地方,我想為char *s分配一些內存,如下所示:

TLG aux;
…
((word*)(aux->info))->s=strdup(str);

它給了我一個警告“賦值使指針來自整數而不進行強制轉換......為什么?

您正在調用 malloc() 並且您尚未通過包含<stdlib.h>聲明 malloc() 。 默認情況下,函數被假定返回一個 int 因此你應該在使用它之前聲明一個函數。

因為您沒有包含<stdlib.h> ,所以您將 int 分配給一個 char * ,它是一個指針。 因此,您會收到警告“賦值從整數生成指針而無需強制轉換”。

暫無
暫無

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

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