아래의 구조와 같은 파일에서 C로 된 정수의 다차원 배열로 데이터를 읽으려면 어떻게해야합니까?C에서 동적 할당을 사용하여 다차원 배열로 파일 읽기
파일 :
3 4 30 29
23 43 4 43
I는 동적 할당을 사용하여 "INT ** 매트릭스"변수의 내부에 넣을 필요가있다.
업데이트 :
는 내가 가서 아래의 기능 사이의 관계를 연구 할 수있는 예제 코드합니다 :
- 다차원 배열과와의 관계를 가리키는 포인터 포인터;
- 메모리의 동적 할당과 사용에 대한 설명.
- 우리가 크기를 모르는 외부 소스에서 오는 데이터를 처리하는 방법, C 프로그램의 내부 배열에 행/열을 어떻게 분리 할 것인가?
코드 공유 :
int** BuildMatrixFromFile(char* infile, int rows, int cols){
FILE *fpdata; // deal with the external file
int** arreturn; // hold the dynamic array
int i,j; // walk thru the array
printf("file name: %s\n\n", infile);
fpdata = fopen(infile, "r"); // open file for reading data
arreturn = malloc(rows * sizeof(int *));
if (arreturn == NULL)
{
puts("\nFailure trying to allocate room for row pointers.\n");
exit(0);
}
for (i = 0; i < rows; i++)
{
arreturn[i] = malloc(cols * sizeof(int));
if (arreturn[i] == NULL)
{
printf("\nFailure to allocate for row[%d]\n",i);
exit(0);
}
for(j=0;j<cols;++j)
fscanf(fpdata, "%d", &arreturn[i][j]);
}
fclose(fpdata); // closing file buffer
return arreturn;
}
감사합니다.
평소처럼 : 무엇을 이미 시도해 봤습니까? –
그것은 숙제처럼 들린다. –
당신의 질문은 무엇입니까? 파일에서 읽는거야? 다차원 배열? 동적 할당? 포인터 - 투 - 포인터? –