카테고리 없음

[씨] 함수의 로컬 포인터를 해제하고 포인터를 반환합니다.

필살기쓰세요 2021. 2. 21. 05:52

둘 다하고 싶다.

그것은 좋은 목표가 아닙니다.

포인터를 해제하면 포인터를 반환하지 않아야합니다. 그렇지 않으면 호출하는 함수가 매달린 포인터를 얻습니다.

재귀가 있으므로 함수 자체에서 포인터를 비우고 싶습니다.

반환 된 포인터를 캡처하고 사용하고 해제했는지 확인하십시오.

함수의 모습은 다음과 같습니다.

char * ABCfunction()
{
   char * p = malloc(10*sizeof(char));
      //do something with p
      
         char* p1 = ABCfunction();
            // Use p1.
               // Then free p1
                  free(p1);
                  
                     return p;
                     }  
                     


출처
https://stackoverflow.com/questions/39940197