a=(int*)malloc(100*sizeof(int));
free(a)
とかしたときにaの指すアドレスからどこまでを開放するかってのは
どうやって分かるの?