相关疑难解决方法(0)

malloc - 从void*到double*的无效转换

我想编写一个使用指针创建双数组副本的函数.到目前为止这是我的代码:

#include <stdio.h>
#include <stdlib.h>

double* copy (double *array, int size)
{
    double *v=malloc(sizeof(double)*size);
    for (int i=0; i<size; i++)
        *(v+i)=*(array+i);
    return v;
}

int main ()
{
    //double array[];
    int size;
    printf ("size= "); scanf ("%i",&size);
    double *array=malloc(sizeof(double)*size);
    for (int i=0; i<size; i++)
        scanf("%f",&array[i]);
    copy(array,size);
    free(array);
}
Run Code Online (Sandbox Code Playgroud)

我有2个编译错误,我无法摆脱.我明白了

从void*无效转换为double*

当我尝试使用malloc分配内存但我无法理解我做错了什么.

c malloc

16
推荐指数
2
解决办法
2万
查看次数

我们为什么要转换malloc的返回值?

有人可以向我解释为什么一些程序员在malloc前使用(char*)?我知道它返回void但为什么我要它只返回char内存?对不起,我只是编程的新手.谢谢

c malloc

9
推荐指数
1
解决办法
2万
查看次数

标签 统计

c ×2

malloc ×2