Недавно я начал изучать C сам, так что может быть вопрос немного новичков. я составил следующие команды:printf необъяснимое поведение
#include <stdio.h>
int main()
{
int arr[5]={0};
int arr2[5]={0};
printf("%d\n",arr[5]); //here output: 2130567168
printf("%d\n",arr2[5]); //here output: 0
return 0;
}
может кто-нибудь объяснить причину различных выходов?
Вы понимаете, что получаете доступ к своим массивам за пределы? вы выделили только пространство для 5-ти томов для обоих, но вы пытаетесь получить доступ к шестому – UnholySheep
возможных дубликатов [Насколько опасно это доступ к массиву за пределами границ?] (http://stackoverflow.com/questions/15646973/how -dangerous-is-it-to-access-a-array-out-of-bounds) – Deduplicator