当我编译我的项目时,我得到了错误(“赋值使得没有强制转换数组的指针生成整数= NULL”)。我不明白为什么它在if语句中工作而不在else语句中。
FILE *fp;
int i,j,m,n;
char citemp;
if (!(fp = fopen(trainingsInputFile, "r"))) {
perror("Datei konnte nicht gelesen werden");
}
else {
i = 0;
j = 0;
n = 0;
char *carray = (char*)malloc(sizeof(char) * 20);
while (!feof(fp)) {
citemp = getc(fp);
if(citemp != ';'){
if(citemp != ','){
carray[j] = citemp;
j++;
}else{
trainingsInputArray[n][i] = atof(carray);
for(m = 0; m < j; m++){
carray[m] = NULL;
}
j = 0;
i++;
}
}else{
n++;
i = 0;
}
}
}
fclose(fp);
错误: environment.c:21:警告:赋值从指针生成整数而没有强制转换[-Wint-conversion] carray [m] = NULL;
答案 0 :(得分:0)
您收到该错误的原因是第carray[m] = NULL
行。 NULL似乎定义为((void*)0)
,而不仅仅是0
,因此编译器已正确识别您正在将指针(NULL
)分配给整数值(carray[m]
)这是一个char
。将该行改为carray[m] = 0
,该特定错误应该消失。