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("\n"); 
}
Output
1 2 5 10


Copyright © 2011, Neal R. Wagner. Permission is granted to access, download, share, and distribute, as long as this notice remains.