Nenhum erro fora dos limites
Eu tenho esse código em C, que leva um monte dechar
s
#include<stdio.h>
# define NEWLINE '\n'
int main()
{
char c;
char str[6];
int i = 0;
while( ((c = getchar()) != NEWLINE))
{
str[i] = c;
++i;
printf("%d\n", i);
}
return 0;
}
Input é: testtesttest
Output: 1 2 3 4 5 6 7 8 117 118 119 120
As minhas perguntas são:
Por que não recebo uma exceção fora dos limites (falha de segmentação), embora exceda claramente a capacidade da matri
Por que os números na saída saltam repentinamente para números muito grandes?
Tentei isso em C ++ e tenho o mesmo comportamento. Alguém poderia explicar qual o motivo disso?