| array-limitations-2.c - Illustration of array limitations in C: Cannot pass as value parameter. | Lecture 1 - slide 20 : 34 Program 11 |
#include <stdio.h>
void f (double p[], int p_lgt){ /* Double the elements in p */
int i;
for(i = 0; i < p_lgt; i++)
p[i] = p[i] * 2; /* p is NOT a local copy of the
actual parameter. It is a pointer
to the actual parameter array. */
}
int main(void) {
double a[10];
int i;
for(i = 0; i < 10; i++) /* Initialization */
a[i] = i;
f(a, 10); /* The array a is not copied to f.
No compiler errors. No run time errors. */
for(i = 0; i < 10; i++)
printf("After calling f: a[%d] = %f\n", i, a[i]);
return 0;
}