I tried through different ways to copy an array pointer to another one, without any success. Here are my attempts, with the associated error message.
typedef
You cannot assign arrays in C. Use memcpy
to copy an array into another.
coordinates coord2;
memcpy(coord2, coord, sizeof coord2);
Your coordinates need to be initialized as pointers
coordinates *coords2, *coords3;
Try that out and then assign.
You cannot assign one array to another using the assignment operator, e.g. a = b
, because an array doesn't know the size of itself.
This is the reason why we cannot assign one array to another using the assignment operator.
When arrays are passed by value, they decay to pointers. The common trick to work around that is wrapping your fixed-size array in a struct
, like this:
struct X {
int val[5];
};
struct X a = {{1,2,3,4,5}};
struct X b;
b = a;
for(i=0;i!=5;i++)
printf("%d\n",b.val[i]);
Now you can pass your wrapped arrays by value to functions, assign them, and so on.