我有这个哈希结构:
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从没有强制转换的整数中生成指针 ...为什么?
答案 0 :(得分:1)
您正在调用malloc(),并且您没有通过包含<stdlib.h>
来声明malloc()。默认情况下,假定函数返回一个int,因此您应该在使用之前声明一个函数。
因为你没有包含<stdlib.h>
,所以你将int赋给一个指针char *。因此,您会收到警告“assigment从没有强制转换的整数生成指针”。