내가 포인터 char* ptr
할당 된 메모리 및 ptr
메모리가 해제 된 후 arr
어떻게됩니까 다른 포인터 char* arr = ptr
상태 메모리가 할당이 해제 된 경우는
을 말해봐.
이 기능은하자 :
char* foo()
{
char* ptr = new char [100];
char* arr = ptr;
delete [] ptr;
return arr;
}
내가이 값을 반환 할 수 있습니까?
컴파일 타임/런타임 오류가 발생합니까? 또는 다른 건. 함수가 내가 이전의 출력에서 변화가 없을 것입니다하지만, 어떤 변화가있을 것이라고 생각
char* foo()
{
char* ptr = new char [100];
char* arr = ptr;
delete [] arr;
return ptr;
}
인 경우
또는 어떤 일이 일어날 것 ?? 내가 수업을
class Pointer
{
public:
char* ptr;
Pointer()
{
ptr= new char [100];
}
~Pointer()
{
delete [] ptr;
}
};
을 가지고 작동하는 경우
은 어떻게 될까
Pointer foo()
{
Pointer ptr;
ptr.ptr[0]='l';
return ptr;
}
늘 소멸자 함수의 끝에서 호출과 허상 포인터 Pointer::ptr
을 만들 수 ??
"이 반환 값을 사용할 수 있습니까?" 당신은 할 수 있지만 그것은 똑똑하지 않을 수 있습니다, 그것은 매달려 포인터가 될 수 있습니다. null 반환 값을 기대하는 경우 null 또는 null'arr' 만 반환하면됩니다. – George
arr이 쓰레기를 가리 킵니다. 그것을 반환하지 마십시오. – AndyG
나는 당신이 틀린 질문을하고 있다고 생각합니다. 전혀 'arr'이 발생하지 않습니다. 또는 그 문제에 대한'ptr'. – juanchopanza