#include <stdlib.h>
#include <stdio.h>
long double* n = (long double*) malloc(256);
long double d = *(n + 3);
Did we just increment n
by 3 bytes? Or did we increment by (3 times the number of bytes in a long double)?
Alternatively, is C smart enough to know that n
points to an array of long doubles, or is C stupid, where it needs to be told exactly how many bytes to advance the pointer?