Arrays: Pointer Arithmetic


The Programs: Here is a C program illustrating pointer arithmetic:

Ordinary C arrays
#include 
#include  /* for malloc & free */
#define SIZE 4
void init(int *p, int size);
void print(int *p, int size);

int main() {
int *p = (int *)malloc(sizeof(int) * (SIZE+1));
init(p, SIZE);
print(p, SIZE);
free(p);
}

void init(int *p, int size) {
int i;
for (i = 0; i < size; i++)
*(p+i) = i*i + 1;
*(p+size) = 0;
}

void print(int *p, int size) {
int data;
while ((data = *(p++)) != 0) {
printf("%i ", data);
}
printf(" ");
}
Output
1 2 5 10


Created By Dr. Neal Wager : The University of Texas at San Antonio