/****************************************************************/
/* soubor CPYARRY.C */
/* na funkcich kopirujicich prvky jednoho pole do druheho */
/* ukazuje pristup k prvkum pole pomoci indexu i pomoci uka- */
/* zatele, tedy pointerovou aritmetiku */
/****************************************************************/
#define N 6
#include <stdio.h>
void copy_array1(int *a, int *b, int n)
/* a - vstupni pole, b - vystupni pole, n - pocet prvku */
{
register int i = 0;
for (; i < n; i++)
b[i] = a[i];
}
void copy_array2(int *a, int *b, int n)
/* a - vstupni pole, b - vystupni pole, n - pocet prvku */
{
while (n-- > 0)
*b++ = *a++;
}
void print_array(int *p, int n)
/* vytiskne celociselne pole o n prvcich */
/* zacne a skonci na novem radku */
{
puts("");
while (n-- > 0)
printf("\t%d", *p++);
puts("");
}
int main()
{
int pole1[] = {1, 2, 3, 4, 5, 6, 7, 8, 9},
pole2[N], dim1;
dim1 = sizeof(pole1) / sizeof(int);
print_array(pole1, dim1);
copy_array1(pole1, pole2, N);
print_array(pole2, N);
copy_array2(pole1 + 3, pole2, N);
print_array(pole2, N);
return 0;
}
/* vystup vypada nasledovne:
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6
4 5 6 7 8 9
*/