得到此错误:赋值从整数中生成指针而不使用强制转换

时间:2017-10-05 16:41:38

标签: c

#include <stdio.h>
#include <stdlib.h>
#include <string.h>


    int main(int argc, char** argv){
            struct Node *hashtable[1000000];
            struct Node *starting=NULL;

            if(argc!=2){
                    return 0;
            }

            FILE *file = fopen(argv[1], "r");

            if(file==NULL){
                    printf("error\n");
                    return 0;
            }

            int j;

            for(j=0; j<1000000;j++){
                    hashtable[j]=NULL;
            }

            char user;
            int value;
            int k;

            while(fscanf(file,"%c %d\n", &user, &value)==2){
                    if(value>=0){
                            k=(value%1000000);
                    }else{
                            k=-(value%1000000);
                    }

                    if(user=='i'){
                            if(hashtable[k]!=NULL){
                                    struct Node *temp=hashtable[k];
                                    hashtable[k]=insertNew(temp,value);
                            } else{
                                    hashtable[k]=insertNew(starting,value);
                            }
                    }

正在使用更多方法,但我收到以下错误:

third.c:86:45:警告:赋值从整数中生成没有强制转换的指针[默认启用]                                  哈希表[K] = insertNew(温度,值);                                              ^ third.c:88:45:警告:赋值从整数中生成没有强制转换的指针[默认启用]                                  哈希表[K] = insertNew(起始,值);

我理解这意味着什么,但我很困惑为什么我在这里得到这个错误......

1 个答案:

答案 0 :(得分:2)

您错过了insertNew()的原型,因此您的编译器假设它是一个返回int的无原型函数。

您应该在顶部包含一个带有insertNew()原型的标头,或者手动在文件顶部声明原型。