问题一:[Warning] assignment makes pointer from integer without a cast
问题二:[Warning] assignment from incompatible pointer type
举例说明
typedef struct _Item
{
char * key;
char * value;
unsigned int count;
struct Item * next;
} Item;
1、
NULL ==(np->key = strdup(key)
产生问题一: 因为np->key 是char * 类型,而strdup虽然返回也是char * 类型,但是还是需要转换才行
改为
NULL ==(np->key = (char *)strdup(key)
报警消失
注意:未经声明的函数原型一律默认为返回int值
2、
static struct Item *hashtab[HASHSIZE];
........
np->next = hashtab[hashval]; //此处产生问题二
改为
np->next = (struct Item *)hashtab[hashval];
错误消失
本文解析了C语言中两种常见的指针类型转换警告:从整型到指针的赋值未进行类型转换及不兼容的指针类型赋值。通过具体示例,介绍了如何正确地进行类型转换以消除这些警告。
9298

被折叠的 条评论
为什么被折叠?



