C 함수에서 문자열 반환

C Hamsueseo Munjayeol Banhwan



단일 문자 또는 여러 문자로 구성된 일련의 문자이며 컴퓨터 프로그래밍에서 중요한 데이터 구조입니다. 작업할 때 문자열 C에서는 특정 작업을 수행해야 합니다. 초기화와 같은 데이터 유형 , 콘텐츠 할당, 연결 문자열 , 비교 문자열 , 그리고 .

이 문서는 다음 작업 중 하나에 중점을 둡니다. 반환하는 데이터 구조 C 함수에서.







C 함수에서 문자열 반환

처럼 는 문자 배열이며 C 함수에서 문자열을 반환하려면 문자열 데이터 구조에 대한 포인터를 호출 함수에서 매개 변수로 호출된 함수에 인수로 전달해야 합니다. 그런 다음 포인터를 사용하여 문자 배열을 가리킬 수 있습니다. 포인터가 문자 배열을 가리키면 return 문을 사용하여 호출된 함수에서 값을 반환할 수 있습니다.



더 나은 이해를 위해 아래 주어진 예를 볼 수 있습니다.



#include

상수 문자 * 내 이름 ( ) {
반품 '남자' ;
}

정수 메인 ( 무효의 ) {
printf ( '%에스' , 내 이름 ( ) ) ;
}





위의 코드에서는 평소처럼 변수를 선언하는 대신 포인터를 사용하여 이 문자열을 반환할 때 오류가 발생하지 않도록 했습니다.

산출




C 함수는 함수 실행이 완료되면 변수가 즉시 제거(해제)되어 사용할 수 없게 되고 아래와 같이 경고가 발생하기 때문에 로컬 변수로 지정되었습니다.

#include

const char myName ( ) {
문자 이름 = '남자' ;
반품 이름;
}

정수 메인 ( 무효의 ) {
printf ( '%에스' , 내 이름 ( ) ) ;
}

이 코드에서 경고 문자열이 반환될 때 트리거됩니다. 없이 모든 포인터.

산출


따라서 다음과 같은 방법으로 코드를 작성할 수 있습니다.

#include

상수 문자 * 내 이름 ( ) {
* 이름 = '남자' ;
반품 이름;
}
정수 메인 ( 무효의 ) {
printf ( '%에스' , 내 이름 ( ) ) ;
}

산출


변수는 기본적으로 스택에 할당되는데, 이것이 위 문장의 실제 이유입니다. 그러나 포인터가 선언되면 포인터가 가리키는 값이 힙에 할당되며 함수가 완료된 후에도 지워지지 않습니다. 메모리가 할당되면, 포인터가 가리키는 원래 메모리 위치에서 생성되어야 하며 복사본은 호출된 함수에서 반환되어야 합니다. 그러면 호출 함수는 원래 문자열 데이터를 제어할 수 있으며 호출된 함수는 할당된 공간을 확보할 책임이 있습니다.

결론

C 함수는 다음에 대한 포인터를 취할 수 있습니다. 인수로 반환 호출된 함수 내에서 수행된 작업의 결과 값입니다. 이를 달성하기 위한 접근 방식은 char* 포인터를 사용하는 것입니다. 호출하는 함수는 데이터를 저장하기 위해 할당된 메모리를 담당합니다. , 호출된 함수는 할당된 공간을 해제하는 역할을 합니다.