다음 시나리오에서 method1이 실행 된 후 'stringvar'에 의해 사용 된 메모리가 해제되었는지 궁금한가요? 내가 방법 항목의 끝에서 '무료 (stringvar)'는 넣으면, 내가 stringvar이 (사실입니다) 방법 항목 내에서 초기화되지 않았다는 경고 얻을 수 있기 때문에이와 같이 범위를 벗어나면 관련 메모리를 확보 할 수 있습니까?
// Just some method
void method2(char* str)
{
// Allocate 10 characters for str
str = malloc(10 * sizeof(char));
}
// Just another method
void method1()
{
char* stringvar;
method2(stringvar);
// Is the memory freed hereafter, or do I need to call free()?
}
나는, 부탁드립니다.
입니다. method2의 다소 심각한 버그를 지적 해 주셔서 감사합니다. – emk
C 코드이므로 malloc의 반환 값을 캐스팅하지 마십시오. – aib
method2의 "str"을 배열로 처리하려면 * str [x]를 사용해야합니다. 그렇습니까? – pbean