我试图从这段代码中返回一个数组,这样我以后可以创建一个数组数组,在另一种方法中我正在写...
int getValues(char *userInputPtr) {
int i = 1;
float fp = 0;
float num = atof(userInputPtr);
float *arrayOfFloats = (float *)malloc(sizeof(float) * num);
for ( i ; i <= num ; i++ ) {
scanf(" %f", &fp);
arrayOfFloats[i] = fp;
printf(" %f", arrayOfFloats[i]);
}
printf("\n");
return arrayOfFloats;
}
我一直收到错误:警告:return在没有强制转换的情况下从指针生成整数。我只是想返回阵列!是什么赋予了? :/
答案 0 :(得分:1)
将函数的返回类型从int
更改为您要返回的正确类型,i。 e。,改变:
int getValues(char *userInputPtr)
到
float *getValues(char *userInputPtr)
当然,这在技术上不会返回数组(C不允许返回数组),而是指向C数组的第一个元素的指针。