Arrays can be copied but only by copying their individual 
elements. E.g. you can use the library function strcpy() to 
copy strings (arrays of char).

Because of the close link between array names and pointers, 
assigning an array name does not copy the underlying array, 
but instead makes the pointer an alias for the array name:

  int i;
  int a[] = {1, 2, 3};
  int *b = a;

Now a[i] and b[i] refer to the same area of memory. The 
array values themselves have not been copied. Changing b[i] 
will change a[i] and vice versa, because they're the same 
thing.

If you want to copy an array, as John Matthews suggests, you 
can wrap it in a struct. Structs can be copied and can even 
be returned by functions.

Disclaimer: the above applies to C; I don't know any C++.

David

Reply via email to