Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
什么是;malloc“;你用C/MPI做什么?_C_Mpi - Fatal编程技术网

什么是;malloc“;你用C/MPI做什么?

什么是;malloc“;你用C/MPI做什么?,c,mpi,C,Mpi,可能重复: aynone能否解释这段代码的作用,尤其是“malloc”?我在C和MPI中使用这个 vector = ( double * ) malloc ( size_of_vector * sizeof ( double ) ); for ( i = 0; i < size_of_vector; i++ ) { vector[i] = (double) ( i + 0.211 ); } 向量=(double*)malloc(向量的大小*sizeof

可能重复:

aynone能否解释这段代码的作用,尤其是“malloc”?我在C和MPI中使用这个

vector = ( double * ) malloc ( size_of_vector * sizeof ( double ) );

    for ( i = 0; i < size_of_vector; i++ ) {
        vector[i] = (double) ( i + 0.211 );
    }
向量=(double*)malloc(向量的大小*sizeof(double)); 对于(i=0;i<向量的大小;i++){ 向量[i]=(双)(i+0.211); } 我对malloc知道这一点:

函数malloc()返回指向大小为的内存块的指针 大小,如果有错误,则为NULL。指向的内存将打开 堆,而不是堆栈,因此请确保完成后释放它 用它


它分配足够的内存来存储
size\u of_vector
double,然后初始化该内存以保存
size\u of_vector
double,并根据其在向量中的位置计算值


malloc
调用分配内存。

malloc-分配内存。传入的参数是要返回的字节数

上面的代码为一个double数组分配了足够的内存(长度等于向量的大小)


for循环只是初始化数组,数组中的每个插槽都比它前面的插槽高.211。

malloc用于在C中分配内存

例如,每种数据类型的double可能是8个字节。
sizeof(double)
获取此大小和
size\u of_vector*sizeof(double)
是向量的实际大小


因此,您实际上要做的是将向量的实际大小传递到malloc中,您希望malloc为您保留一定数量的内存以供使用。

wellcome to stackoverflow。我想你误解了这个网站的目的。这不会取代您喜爱的搜索引擎。在这里提问之前,请表现出一些努力。