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
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.
It should actually be:
for(i = 0; i < 10; ++ i)
{
memcpy(&(a[i][0]), &(c[i][0]), 10 * sizeof(int));
}
That should work :
int i;
for(i = 0; i<10; i++)
{
memcpy(&a[i], &c[i], sizeof(c[0]));
}