#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
int main(void){
float *ptr;
ptr=malloc(2);
float j=0;
for(int i=0;i<1000;i++,j++){
ptr[i]=j;
printf("%f \n",ptr[i]);
}
}
Выходные данные будут показаны:
Ошибка сегментации;
Возможный вывод для отображения:
0
1
2 ...... 999
Но фактический результат:
0
1
2 ......... 679
Из этого можно сделать вывод, что malloc выделяет дополнительные 660 байтов.
В этом случае malloc выделяет дополнительные байты из того, что вы указали.
Но это относится не ко всем случаям. Это только один пример.
malloc покажет НЕОПРЕДЕЛЕННОЕ ПОВЕДЕНИЕ в зависимости от среды.