동적 메모리 할당에 대한 읽기가 시작되어 프로그램이 충돌합니다.프로그램 충돌 (동적 메모리 할당)
void getSpace(int *ptr)
{
ptr = new int [100];
}
void getData(int *ptr)
{
cin >> *(ptr);
cin >>*(ptr+1);
}
int main()
{
int *ptr = NULL;
getSpace(ptr);
getData(ptr);
}
하지만 어떤 이유로이 메시지는 표시되지 않습니다. 마치 내가 원하는 힙 크기로 배열을 가져 오는 것과 같은 함수에서 포인터를 선언하면 충돌이 발생하지 않는 것 같습니다.
힌트를해야 하나 : ptr'는'getData' – Mgetz
'에서 nullptr'입니다'어쩌면 당신이해야 당신이 메모리를 일으킬 수 있기 때문에 함께 할이 –
누수 후 새로 할당 된 PTR 삭제 'ptr' 포인터는'getSpace()'에 [참조로 전달]해야합니다. (http://www.learncpp.com/cpp-tutorial/73-passing-arguments-by-reference/). 'getSpace (int ** ptr) '와 같은 것입니다. – francis