小编Ada*_*dam的帖子

MPI_Bcast()是否阻止?

MPI_Bcast()阻塞或非阻塞?换句话说,当根发送数据时,所有处理器是否都会阻塞,直到每个处理器都收到这些数据?如果没有,如何同步(阻止)所有这些,以便没有人继续进行,直到所有人都收到相同的数据.

parallel-processing mpi

3
推荐指数
2
解决办法
4035
查看次数

我们可以找到另一个小于float的数据类型吗?

为了在0-1互斥之间存储值,我分配了以下缓冲区:

float *buff = malloc(n* sizeof(float))
Run Code Online (Sandbox Code Playgroud)

但是,我认为在分配较小的内存大小时,使用float并不能自由选择large n,例如n=10,000。由于float的大小为32 bit,我想知道是否存在另一种方法来通过变通办法或选择其他数据类型来减小此大小。

c floating-point types

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

在return语句之前理解free()缓冲区

我想了解从函数调用返回指针的行为.假设我有以下简单代码:

int main(){
    int i;
    float *ssd;
    ssd = test();

    for (i = 0; i < 3; ++i) {
        printf("%f, ", ssd[i]);
    }
    printf("\n \n");

    memset(ssd, 0.0, 3*sizeof(float));

    for (i = 0; i < 3; ++i) {
        printf("%f, ", ssd[i]);
    }
    printf("\n \n");

}

float *test(){

    float *buff = malloc(3* sizeof(float));
    int i;
    for (i = 0; i < 3; ++i) {
        buff[i] = (float) (6.31 + i);
    }

    free(buff);
    return buff;

}
Run Code Online (Sandbox Code Playgroud)

如你所见,我在buff里面创建了一个临时缓冲区test().在我回来之前,我buff在 …

c pointers memory-management

0
推荐指数
1
解决办法
1917
查看次数