Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
#include<stdlib.h>
#include<stdio.h>

int main() {
  size_t  size = 10;
  size_t align = 1 << 12;
  float *ptr;
  double *ptr1;

 posix_memalign((void **)&ptr, align , 4);

 if((ptr1 = realloc((int *)ptr, size)) == NULL) {
 exit(0);
 }
 ptr[0] = 12.5;
 ptr[1] = 25.5;
 printf("memory aligned to %d bytes\n\n",align);
 printf("ptr[0]   : %p = %f\n",ptr, ptr[0]);
 printf("ptr[1]   : %p = %f\n\n",&ptr[1], ptr[1]);
 printf("After realloc(): \n");
 printf("ptr1[0]   : %p = %f\n",ptr1, ptr[0]);
 printf("ptr1[1]  : %p = %f\n\n",&ptr1[1], ptr1[1]);
 printf("The value at ptr[1] remains the same after realloc()\n");
 printf("ptr[1]   : %p = %f\n",((float *)ptr1+1),*((float *)ptr1+1));
 free(ptr1);
 return 0;
}

...