【发布时间】:2017-03-22 01:43:14
【问题描述】:
我有下面这段运行良好的代码:
int array[16][2] = {{0}};
void *buffer_ptr = NULL;
get_buffer(&buffer_ptr); // This is a function which gives me the address of
buffer ptr
file_read(handle, size, buffer_ptr); // This function reads and stores data into buffer_ptr
现在我想将此读取值复制到 buffer_ptr 到数组中。我目前正在执行此操作:
for (i = 0; i < 16; i++)
{
array[i][0] = *((int *)buffer_ptr+(2*i));
array[i][1] = *((int *)buffer_ptr+(2*i)+1);
}
但我确信有更好的方法来做到这一点。
谢谢。
【问题讨论】:
-
get_buffer是做什么的?您的评论不是很有启发性,因为您已经知道buffer_ptr的地址。 -
这更像是一个Code Review 问题
-
也许你想要
memcpy(&array, buffer_ptr, sizeof array); -
文件的格式是什么?