C - 解交织数据
在 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以使用
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, usemalloc()
function in C.If you are using C++, you can use the
new
operator.