C 프로그래밍에서 const char 포인터 배열을 예상하는 함수에 char**을 전달하는 방법
함수 프로토타입에 const char 배열을 사용합니다.
void my_function(const char* str_array[]);
이 경우 함수는 문자열 배열을 변경할 수 없습니다.
void my_function(char* str_array[]);
void my_function(const char* str);
void my_function(char* str);
void my_function(void* ptr);
이 경우 함수는 포인터가 가리키는 데이터를 변경할 수 있습니다.
예시
다음은 const char 포인터 배열을 예상하는 함수에 char**을 전달하는 방법의 예입니다.
#include <stdio.h>
void my_function(const char* str_array[]);
int main() {
char* str_array[] = { "Hello", "World" };
my_function(str_array);
return 0;
}
void my_function(const char* str_array[]) {
int i;
for (i = 0; str_array[i] != NULL; i++) {
printf("%s\n", str_array[i]);
}
}
이 코드는 다음과 같은 출력을 생성합니다.
Hello
World
참고:
- const char 포인터 배열은 문자열 배열을 변경하지 못하도록 보호하는 데 사용할 수 있습니다.
- char** 포인터는 문자열 배열을 변경할 수 있도록 허용합니다.
- 함수 프로토타입에 const char* 포인터를 사용하면 함수가 문자열 배열을 변경하지 못하도록 보호할 수 있습니다.
추가 정보
예제 코드
#include <stdio.h>
void my_function(const char* str_array[]);
int main() {
char* str_array[] = { "Hello", "World" };
my_function(str_array);
return 0;
}
void my_function(const char* str_array[]) {
int i;
for (i = 0; str_array[i] != NULL; i++) {
printf("%s\n", str_array[i]);
}
}
Hello
World
설명
이 예제에서는 다음과 같은 방법을 사용하여 const char 포인터 배열을 예상하는 함수에 char**을 전달합니다.
my_function()
함수 프로토타입은 const char 포인터 배열을 매개변수로 받습니다.main()
함수에서str_array
라는 char 포인터 배열을 선언하고 초기화합니다.my_function()
함수에str_array
를 전달합니다.my_function()
함수는str_array
를 반복하고 각 문자열을 출력합니다.
참고
추가 정보
const char 포인터 배열을 예상하는 함수에 char**을 전달하는 대체 방법
함수 프로토타입을 변경합니다.
void my_function(char* str_array[]);
void my_function(const char* str);
함수에 void 포인터를 전달합니다.
void my_function(void* ptr);
void my_function(const void* ptr);
함수에 포인터를 전달하지 않습니다.
void my_function(void);
#include <stdio.h>
void my_function(char* str_array[]);
int main() {
char* str_array[] = { "Hello", "World" };
my_function(str_array);
return 0;
}
void my_function(char* str_array[]) {
int i;
for (i = 0; str_array[i] != NULL; i++) {
printf("%s\n", str_array[i]);
}
}
Hello
World
- 함수에 void** 포인터를 전달하면 함수가 포인터가 가리키는 데이터를 변경할 수 있습니다.
추가 정보
arrays c pointers