저는 새로운 C++ 프로그래밍이며 구조체와 포인터로 시작 했으므로 의심 스럽습니다.void 함수에서 구조체 포인터를 반환하십시오.
난 구조체 보이드 함수() 나 함수를 호출하기 my_struct *의 x의 값을 반환해야
struct my_struct
{
int x;
}
void my_function(){
my_struct* x=10
}
있다.
내가 구조체 포인터가 무효 기능 (사용하지 않는 돌아 본 예) 대신에 그들이 무효 함수에서 구조체의 포인터를 반환하기 때문에 불가능이
struct my_struct
{
int x;
}
struct my_struct* my_function(int* x){
//assign the value for X and return by assign a reference `&` from caller function
}
처럼 사용하거나 할 대부분의 void 포인터를 사용해야합니까? pls은 나와 맺어지며 프로그래밍에 익숙하지 않습니다.
'void'의 반환 유형은 '함수가 값을 반환하지 않음'을 의미합니다. 반환해야 할 경우 함수에 적절한 반환 유형을 지정합니다. 그것은 당신의 경우에'my_struct *'가 될 것입니다. – Angew
또한,'my_struct * x = 10'이 올바르지 않습니다. –
함수와 포인터가 완전히 이해되지 않으면 함수 호출 내에서 동적으로 할당 된 포인터를 반환하지 마십시오. 이후에 삭제하는 것을 잊어 버리면 메모리 누수가 발생할 수 있습니다. 가능한 경우 구조체를 참조로 전달하십시오. 그렇지 않으면, 부스트 라이브러리의 스마트 포인터를 살펴보십시오. – FKaria