2차원 배열 합계 구하는 함수 구현 C언어

홍성우·2023년 4월 23일

자료구조 (C언어)

목록 보기
5/15

2차원배열을 매개변수로 입력 받기

int GetTotal(int(* pnList)[4]) {
	
	int sum = 0;
	for (int i = 0; i < 5; ++i) {
		for (int j = 0; j < 4; ++j) {
			sum += *(*(pnList + i) + j);
		}
	}
	return sum;

}

int main() {
	
	int nList[5][4] = { {1,2,3,4},{5,6,7,8} , {1,2,3,4} , {5,6,7,8}, {1,2,3,4} };
	int(* pnList)[4] = nList;
	/*for (int i = 0; i < 5; ++i) {
		for (int j = 0; j < 4; ++j) {
			nList[i][j]
		}
	}*/
	
	 int result = GetTotal(pnList);
	 printf("%d", result);
	return 0;
}

이중포인터 사용하기

int GetTotal(int** ppnList,int row,int col) {
	
	int i = 0, j = 0,sum = 0;
	for (int i = 0; i < row; ++i) {
		for (int j = 0; j < col; ++j) {
			sum += *(*(ppnList + i) + j);
		}
	}
	return sum;

	return sum;

}

int main() {
	
	int i = 0, j = 0, nCount = 0;
	int** ppnList = (int **)malloc(sizeof(int*) * 5);

	for (int i = 0; i < 5; ++i) {
		*(ppnList + i) = (int*)malloc(sizeof(int) * 4); // row 당 16byte할당
		for (int j = 0; j < 4; ++j) {
			*(*(ppnList + i) + j)= ++nCount;
		}
	}
	printf("sum=%d", GetTotal(ppnList, 5, 4));
	for (int i = 0; i < 5; ++i) {
		free(*(ppnList + i));
	}
	free(ppnList);

	return 0;
}

[참고 에러]


컴파일레어 C20705 : 초기화 중괄호 에러

해결방법

profile
제 블로그를 방문해 주셔서 감사합니다

0개의 댓글