#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(起始,值);
我理解这意味着什么,但我很困惑为什么我在这里得到这个错误......
答案 0 :(得分:2)
您错过了insertNew()
的原型,因此您的编译器假设它是一个返回int
的无原型函数。
您应该在顶部包含一个带有insertNew()
原型的标头,或者手动在文件顶部声明原型。