나는 C와 끔찍하며 strcpy에 문제가있다. 함수 인수 중 하나를 잡고 char 배열에 저장하려고합니다. 이걸 실행할 때 세분화 오류가 발생하지만 그 이유는 알 수 없습니다. 내가 도대체 뭘 잘못하고있는 겁니까? 감사!strcpy의 문제
struct bb_state {
FILE *logfile;
char *rootdir;
};
struct bb_state *bb_data;
bb_data = malloc(sizeof(struct bb_state));
strcpy(bb_data->rootdir, argv[argc-2]);
포인터 ('bb_data-> rootdir')가 가리키는 영역을 확보 할 필요가있다을 할당합니다. – BLUEPIXY
'bb_data-> rootdir'의 크기를 확인 했습니까? 'char * strcpy (char * destination, const char * source)': ** overflows **를 피하기 위해서, ** destination **이 가리키는 배열의 크기는 ** 같은 C 문자열을 포함 할만큼 충분히 길어야한다. 소스 ** (종료 널 문자 포함), 소스와 메모리에서 겹쳐서는 안됩니다. –