나는 문제가 문자 배열 내에서 지정된 디렉토리 내부의 파일 이름을 저장하는 데에 dirent라는 헤더 파일을 사용하여 디렉토리를 읽기 위해 노력하고 있습니다로 포인터를 숯불에 문자열을 추가.
코드는 다음과 같습니다.
char * FileNames;
while ((DirentPointer = readdir(DirectoryPointer)) != NULL) {
strcpy(&FileNames[Counter], DirentPointer -> d_name);
Counter++;
}
응용 프로그램을 실행할 때 세그먼트 오류가 발생합니다. 나는 strcpy가 메모리 할당 때문에 응용 프로그램을 잘못 생각한다고 생각한다.
누구나 malloc 및 realloc을 사용하여 FileNames Char *에 메모리 할당을 동적으로 추가하는 방법을 알 수 있습니까?
첫 번째 문제는 'FileNames'는 char 배열입니다. 'char ** FileNames; '라는 이름을 저장하기위한 char 포인터에 대한 포인터와 포인터가 필요합니다. –
솔직히 말하면 언어에 익숙하지 않습니다. 포인터에 대한 포인터를 만들면 어떻게 strcpy 메서드에서 배열을 참조 할 수 있습니까? &&를 사용해야하나요? – Andrew
이 자습서를 살펴보면 유용 할 수 있습니다. http://www.cplusplus.com/doc/tutorial/pointers/ –