【问题标题】:C - De-interleave DataC - 去交错数据
【发布时间】:2011-10-19 21:22:17
【问题描述】:

在 C 程序中,我有两个指向浮点数据的双指针:

float **source;
float **dest;

在运行时,大小已设置并且相同。我想将数据从源复制到目标,但源数据是交错的,我希望 dest 是数据的非交错副本。所以 source 可能看起来像:

1 5 2 6 3 7 4 8

在副本中,我希望 dest 看起来像:

1 2 3 4 5 6 7 8

如果我在编译时知道数据的大小,我可以创建维度数组 MxN 和 NxM,但我不知道。我大脑中的“C 指针”部分已经好几年没用过了,而且已经很生锈了。任何帮助将不胜感激。

【问题讨论】:

  • 如果这是关于矩阵转置并且您可以使用一维数组,那么有一个简单的公式。
  • 你读过comp.lang.c FAQ的第6部分吗?
  • source 和 dest 是指针,而不是数字,所以它们不可能像您描述的那样。它们指向一些包含指向其他内存的指针的内存,而其他内存包含数字。因此,如果不描述这些中间指针是什么样的(以及有多少),您的问题就没有任何意义。
  • 你的意思是你有两个浮点数组的数组,并且直到运行时你才知道任何数组的大小?

标签: c sorting double-pointer


【解决方案1】:

您可以使用sizeof() 运算符来了解任何变量的大小。如果您想在运行时执行动态内存分配,请使用 C 中的malloc() 函数。

如果您使用的是 C++,则可以使用 new 运算符。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-12
    • 2011-03-09
    • 1970-01-01
    • 2012-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多