C에서 버퍼 크기를 어떤 제한없이 오류없이 해결할 수있는 이유는 무엇입니까 (세그멘테이션 오류)? 내가 어떤 오류없이 23 개 문자 대신에 10 자까지 인수로 통과 할 수 있었다버퍼 크기를 초과합니까?
#include <stdio.h>
#include <string.h>
void function1(char *a) {
char buf[10];
strcpy(buf, a);
printf("End of function1\n");
}
main (int argc, char *argv[]) {
function1(argv[1]);
printf("End of main\n");
}
,하지만 난 24 개 문자를 사용할 때 내가 얻을 : 예를 들어
,이 코드로 연주했다 세그멘테이션 오류.나는 24 번째 문자로, 나는 반환 값에 도달했다는 것을 알고있다. 그러나 이전의 13 일은 어떨까요 ?? !!