如何在C中返回一个数组?

时间:2014-09-27 23:50:35

标签: c arrays return return-value

我试图从这段代码中返回一个数组,这样我以后可以创建一个数组数组,在另一种方法中我正在写...

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在没有强制转换的情况下从指针生成整数。我只是想返回阵列!是什么赋予了? :/

1 个答案:

答案 0 :(得分:1)

将函数的返回类型从int更改为您要返回的正确类型,i。 e。,改变:

int getValues(char *userInputPtr)

float *getValues(char *userInputPtr)

当然,这在技术上不会返回数组(C不允许返回数组),而是指向C数组的第一个元素的指针。