当前位置: 首页 > 知识库问答 >
问题:

使用malloc的MPI动态数组

黄博艺
2023-03-14

我在使用malloc和calloc创建动态数组时遇到问题。


    int main() {
      float *xd_real_send;
      int Nooflines_Real;
      int *X;
      float test[500];

      Nooflines_Real = count_lines(infile);
      printf("Nooflines_Real: %d\n", Nooflines_Real);

      X = (int *) malloc(Nooflines_Real*sizeof(int));
      xd_real_send = (float *) calloc (Nooflines_Real,sizeof(float));

      printf("size of X %d, test %d and size of xd_real_send %d\n",
      sizeof(X)/sizeof(int),sizeof(test)/sizeof(float),
      sizeof(xd_real_send)/sizeof(float));fflush(stdout);

    }

输出是

    Nooflines_Real: 40
    size of X 2, test 500 and size of xd_real_send 2

你能告诉我我做错了什么吗?

共有1个答案

乜烨霖
2023-03-14

Xxd_real_send被定义为指针。

应用的sizeof运算符返回指针使用的内存量,而不是指针引用的大小。

一旦动态分配并由某个指针引用,就不可能(以任何可移植的方式)请求内存块的大小。

对于动态分配的内存,应用程序需要注意跟踪这些内存块有多大。

test被明确地定义为一个数组,因此sizeof能够确定数组的大小。

 类似资料:
  • 问题内容: 我正在寻找一个窍门。我知道如何在JavaScript中调用动态的任意函数,并传递特定的参数,如下所示: 我知道如何使用内部的集合传递可选的,无限制的参数,但是,我不知道如何发送任意数量的参数以动态发送给它;我该如何完成这样的工作,但是要有任意数量的可选参数(不要使用丑陋的– )? 问题答案: 使用函数的apply方法:- 编辑 :在我看来,这将是一个稍微的调整会更有用: 这将在浏览器之

  • 我一直坚持使用MPI将多个文件划分到多个节点的方法。 方法1 假设我有5个文件和5个节点,所有文件都存在于一个节点上。现在,是否有任何方法可以引导节点在不发送或接收任何数据的情况下读取所需的文件 例如, 文件1- 方法2 我的另一种方法是读取节点1上的所有文件,然后开始向节点2、3、4和5发送数据。 请让我知道,如果有任何其他好的方法,我应该遵循<提前谢谢。

  • 我正在学习如何在C中创建动态1D数组。下面的代码尝试执行以下操作: 使用,创建长度为的动态数组,该数组保存类型为的值 测试: 问题 > 我的编码正确吗? 我找到的教程使用而不把放在前面。例如, int*指针<指针=malloc(2*sizeof(int)); 在VisualStudio2010和Windows7上,我无法编译此文件。错误消息是 void类型的值不能分配给类型的实体。 为什么它适用于

  • LAM/MPI 是一个高质量的MPI实现。 License: http://www.lam-mpi.org/community/license.php  

  • Open MPI 项目是一个开源消息传递接口实现,最初是作为从其他几个项目(FT- MPI, LA-MPI, LAM/MPI, 以及 PACX-MPI)融合的技术和资源 ,以建立和提供最佳的MPI库,为系统和软件供应商、应用开发者和计算机科研人员提供开放式的MPI 系统。 它易于使用,支持各种各样的操作系统,网络互连,以及一批/调度系统。 特点 完全符合 MPI-3.1 标准 线程安全和并发 动态

  • 预备条件: 理解 glibc malloc 从 2004 年末开始,glibc malloc 变得更可靠了。之后,类似 unlink 的技巧已经废弃,攻击者没有线索。但是在 2005 年末,Phantasmal Phatasmagoria 带来了下面这些技巧,用于成功利用堆溢出。 House of Prime House of Mind House of Force House of Lore H