#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
main()
{
int *ptr,i;
ptr=(int*)malloc(sizeof(int));
printf("sizo of ptr is:%d",sizeof(ptr));
for(i=0;i<30;i++)
scanf("%d",ptr+i);
for(i=0;i<30;i++)
printf("%d",*(ptr+i));
getch();
}
здесь размер PTR является: 4 мой вопрос, я полагаю, что магазин только один целое число в PTR, но здесь, в этой программе я мог хранить более 30 или 100 и т.д., почему он не бросает ошибку?Сколько памяти действительно выделяет malloc?
Потому что сегодня вам повезло. Завтра это может закончиться. – jweyrich
Я проверил эту программу в linux и windows. оба дают тот же результат. В настоящее время я использую dev C++. – user3614789
Связанный вопрос о переполнении буфера в стеке (такой же общий ответ): http://stackoverflow.com/questions/23226217/why-buffer-overflow-doesnt-affect-to-this-code –