How to memcpy a part of a two dimensional array in C?
26,527
Solution 1
That should work :
int i;
for(i = 0; i<10; i++)
{
memcpy(&a[i], &c[i], sizeof(c[0]));
}
Solution 2
It should actually be:
for(i = 0; i < 10; ++ i)
{
memcpy(&(a[i][0]), &(c[i][0]), 10 * sizeof(int));
}
Solution 3
I don't think it's correct, no.
There's no way for memcpy()
to know about the in-memory layout of a
and "respect" it, it will overwrite sizeof c
adjacent bytes which might not be what you mean.
If you want to copy into a "sub-square" of a
, then you must do so manually.
Author by
user2131316
Updated on July 16, 2022Comments
-
user2131316 almost 2 years
How to memcpy the two dimensional array in C:
I have a two dimensional array:
int a[100][100]; int c[10][10];
I want to use
memcpy
to copy the all the values in array c to array a, how to do this using memcpy?int i; for(i = 0; i<10; i++) { memcpy(&a[i][10], c, sizeof(c)); }
is this correct?