예제 코드 :반환되는 변수가 차지하는 메모리를 어떻게 비울 수 있습니까 (C++, 클래스, 소멸자에서 사용)?
class Myclass
{
char * function(const char *x, const char *y)
{
char *a, *b, *c;
*a = strdup(x);
*b = strdup(y);
*c = (char *) malloc(strlen(a) + strlen(b) + 1);
...
...
free(a);
free(b);
return c;
}
};
어떻게 c
에 의해 점유 된 메모리를 free
합니까? 소멸자에서 처리하려고하면 use of undeclared identifier c
이 표시됩니다. 생성자에서 메모리를 할당하지 않고 메모리를 확보 할 수 있습니까?
를 원시 C 포인터를 사용하지 마십시오 :
지금과 같이 호출합니다. 'std :: string'을 인수의 형식으로 사용하고 결과를 함수에 써야합니다. C++ 11에서 좋은 책을 읽어야합니다. –
왜 C++ 코드에서'malloc'을 사용하고 있습니까? 그리고 'strdup'? 왜'std :: string'이 아닌가? –