如何为结构字段动态分配内存?

时间:2014-04-06 15:35:03

标签: c 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);

并且它给了我一个警告" assigment从没有强制转换的整数中生成指针 ...为什么?

1 个答案:

答案 0 :(得分:1)

您正在调用malloc(),并且您没有通过包含<stdlib.h>来声明malloc()。默认情况下,假定函数返回一个int,因此您应该在使用之前声明一个函数。

因为你没有包含<stdlib.h>,所以你将int赋给一个指针char *。因此,您会收到警告“assigment从没有强制转换的整数生成指针”。