C - 解交织数据

发布于 2024-12-10 20:38:17 字数 381 浏览 1 评论 0原文

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

float **source;
float **dest;

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

1 5 2 6 3 7 4 8

在复制时我希望 dest 看起来像:

1 2 3 4 5 6 7 8

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

In a C program, I have two double pointers to some float data:

float **source;
float **dest;

At runtime, the sizes are set and are identical. I want to copy the data from source to dest, but the source data is interleaved and I want dest to be a non-interleaved copy of the data. So source might look like:

1 5 2 6 3 7 4 8

and on copy I want dest to look like:

1 2 3 4 5 6 7 8

If I knew the size of the data at compile time I could create arrays of dimmensions MxN and NxM, but I don't. The 'C pointer' part of my brain hasn't been used in years and is pretty rusty. Any help would be much appreciated.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

把昨日还给我 2024-12-17 20:38:17

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

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

You can use the sizeof() operator in order to know the size of any variable. If you would like to perform the dynamic memory allocation at runtime, use malloc() function in C.

If you are using C++, you can use the new operator.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文