나는 stackoverflow에 집에 넣는 것을 싫어한다. 죄송합니다.Home Work : 포인터 - 투 - 포인터 char (char **)로 파일 읽기
나는 다음과 같은 선언을 맞는 함수를 작성해야
char ** read_maze(char *filename, int *rows, int *cols)
내가 지금까지 쓴 연료 소모량은
char ** read_maze(char *filename, int *rows, int *cols)
{
ifstream maze(filename);
maze >> *rows >> *cols;
char * contents[] = new char * [*rows * *cols];
for (int r = 0; r < *rows; r++) {
for (int c = 0; c < *cols; c++) {
if (!maze.eof())
maze >> contents[r][c];
}
}
return contents;
}
내가 액세스/쓰기되는 데 문제입니다 문자 배열 contents
이 나에게 분할 오류를 제공하고 있습니다. 모든 종류의 다른 접근자를 시도하고 segfault가 발생하는 것을 막을 수 없습니다.
나는 포인트 포인터 문자를 C++로 액세스하는 방법에 대한 검색을 시도했지만 완전히 실질적인 것을 찾지 못했습니다.
내가 시도한 것들 : * 내용 [r * c], (내용 + rc), * ((내용 [r]) + c) 및 기타 많은 것들.
char **
으로 파일을 읽을 수있는 방법은 무엇입니까?
감사
이 라인으로
당신은'contents [r]'을 초기화하거나'std :: vector '. –
Jarod42
행과 열 변수는 무엇입니까? 그리고 나는 틀릴 수도 있지만 내용이'** char []'로 초기화되고있는 것처럼 보입니다. char [x]를 할당하기 전에 할당해야합니다. – cxdf