728x90
더보기
#include <stdio.h>
#include <string.h>

void Swap(char *array[], int a, int b)
{
	char temp[20] = "";
	strcpy_s(temp, 20, array[a]);
	strcpy_s(array[a], 20, array[b]);
	strcpy_s(array[b], 20, temp);
}


void SortingName(char *array[]) {
	for (int i = 0; i < 9; i++) {
		for (int j = 0; j < 9 - i; j++) {
			for (int k = 0; k < 20; k++) {
				if ((array[j][k * 2] > array[j + 1][k * 2]) || ((array[j][k * 2] == array[j + 1][k * 2]) && (array[j][k * 2 + 1] > array[j + 1][k * 2 + 1])))
					Swap(array, j, j + 1);
				break;
			}
		}
	}
}

int main(void) {
	char M[10][20] = { "떡볶이", "마라탕", "김밥", "곱창", "냉면", "크로플", "보쌈", "순대국", "파스타", "치킨" };
	int i;
	printf("정렬 전\n");
	for (i = 0; i < 10; i++) {
		printf("%s, ", M[i]);
	}

	SortingName(M);

	printf("\n정렬 후\n");
	for (i = 0; i < 10; i++) {
		printf("%s, ", M[i]);
	}

	return 0;
}

 

정렬 함수에 대한 매개 변수로 배열명만 전달하니까 

"char(*)[20]" 형식의 인수가 "char **" 형식의 매개 변수와 호환되지 않습니다.

 

해당 오류가 떴었다.

 

거의 한시간 반가량을 찾아본 끝에 매개 변수로 넘겨주는 인자로

char(* Array)[]

 

해당 형태로 넘겨주니 해결되었다..

728x90

(아래는 해결한 전체 소스 코드)

 

더보기
#include <stdio.h>
#include <string.h>

void Swap(char(* array)[20], int a, int b)
{
	char temp[20] = "";
	strcpy_s(temp, 20, array[a]);
	strcpy_s(array[a], 20, array[b]);
	strcpy_s(array[b], 20, temp);
}


void SortingName(char(* array)[20]) {
	for (int i = 0; i < 9; i++) {
		for (int j = 0; j < 9 - i; j++) {
			for (int k = 0; k < 20; k++) {
				if ((array[j][k * 2] > array[j + 1][k * 2]) || ((array[j][k * 2] == array[j + 1][k * 2]) && (array[j][k * 2 + 1] > array[j + 1][k * 2 + 1])))
					Swap(array, j, j + 1);
				break;
			}
		}
	}
}

int main(void) {
	char M[10][20] = { "떡볶이", "마라탕", "김밥", "곱창", "냉면", "크로플", "보쌈", "순대국", "파스타", "치킨" };
	int i;
	printf("정렬 전\n");
	for (i = 0; i < 10; i++) {
		printf("%s, ", M[i]);
	}

	SortingName(M);

	printf("\n정렬 후\n");
	for (i = 0; i < 10; i++) {
		printf("%s, ", M[i]);
	}

	return 0;
}

 

728x90