할당 할 수 있어요 :를 strncpy 독방 감금 잘못이 있지만 캐릭터에게 나는대로 (내가 믿는 스택에?) 정의 된 배열을 숯불하는 글로벌 포인터가 수동으로
char *history[BUFFER_SIZE];
그리고 방법 내부 단순히 원하는을 :
strncpy(history[0], str, length);
입니다. 그 이후로 나에게 이해가되지 않습니다.
history[0] = "a string"
은 seg fault입니다.
내 질문 :
이 같은 문자 배열의 배열을 정의하고 있기 때문에- , 내가 올바른 malloc을하거나 초기화 모든 종류의 작업을 수행 할 필요가 없습니다?
- 왜 오류가 발생합니까?
'history [0] = "a string"은 문자열 리터럴 *에 대한 포인터입니다. 'strncpy' 또는 다른 방법으로 그것을 쓰는 것은 완전한 no-no입니다. 그러나 질문은 불분명하다. 'history [0 ...]'에 메모리를 할당하지 않으면 데이터를 복사 할 수있다.'strncpy (history [0], str, length);'는 실패 할 것이다. –