c/c++语言开发共享使用calloc和数组并返回指针的麻烦

作为参考,这是我的任务的第二部分:

int* generateFibonacci(int size);

此函数将输入一个称为size的整数作为输入。 size变量中包含的值将表示要放入数组的Fibonacci序列中的数量。 该函数将使用calloc创建此大小的数组,然后使用Fibonacci序列中的size编号填充数组,从11 。 当数组完成时,函数将返回指向它的指针。

当我在第8行中收到错误warning: assignment makes and integer from pointer without a cast时,我遇到了麻烦:在warning: assignment makes and integer from pointer without a cast 。 我得到的另一个错误是在第19行“ warning: return makes pointer from integer without a cast ”。

所以我的问题是,我怎么想设置calloc来使用一个大小来自用户的数组,然后返回一个指向它的指针?

 #include  #include  int* generateFibonacci(int size) { int i, array[size]; array[size]=(int*)calloc(size, sizeof(int)); array[0]=0; array[1]=1; for(i = 2; i < size+1; i++) array[i] = array[i-2] + array[i-1]; return *array; } void printHistogram (int array[], int size) { int i, j; for(i=0; i <= size; ++i) { for(j=0; j < array[i]; j++) { printf("*"); } printf("n"); } } int main(void) { int array[100], size; printf("how big will your Fibionacci number be? "); scanf("%i", &size); generateFibonacci(size); printHistogram(array, size); return 0; } 

    我怎么想设置calloc来使用一个大小来自用户的数组,然后返回一个指向它的指针?

    对于int的一维数组*使用printf()scanf()

     int *array = {0}; size_t size = 0; printf("Enter order of array"); scanf("%d", &size); array = malloc(size);//create memory with space for "size" elements if(array){//do other stuff} 

    但是你的例子还不清楚,如果你真的打算使用2D数组那么注释……

    如评论中所述,您已创建了一个int数组,然后尝试为其创建内存。

     int i, array[size]; ... array[size]=(int*)calloc(size, sizeof(int));//wrong 

    在创建时, array不需要内存。 内存在堆栈上自动创建。
    如果你想要一个int数组。 然后你可以这样做:

     int *array[size]; //create a pointer to int [] 

    有了这个,你可以用这种方式创建一个数组数组(在概念上):

     for(i=0;i 

    现在,你基本上有一个size x size 2D数组int 。 可以通过以下方式为其分配值:

     for(i=0;i 

    顺便说一下,根据需要调整calloc()语句的参数, 但请注意 ,不需要输出其输出。

    关于return语句 ,你的函数是原型,返回一个int *

     int* generateFibonacci(int size){...} //requires a return of int * 

    如果您决定使用1D数组,即int *array={0} (要求您分配内存),则返回:

     return array;//array is already a `int *`, just return it. 

    如果您正在使用2D数组,那么要返回一个int * ,您必须决定要返回的数组的哪个size元素:

     return array[i];//where `i` can be any index value, from 0 to size-1 

      以上就是c/c++开发分享使用calloc和数组并返回指针的麻烦相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/c-cdevelopment/519065.html

      (0)
      上一篇 2020年12月5日
      下一篇 2020年12月5日

      精彩推荐