matriz = new (nothrow) int*[qnt_objetos];
if (matriz == 0)
exit(0);
for (int i = 0; i < qnt_objetos; i++)
{
matriz[i] = new (nothrow) int[tam_mochila];
if (matriz[i] == 0)
exit(0);
}
matriz
메모리 공간이 할당되지 않는 단 (메인) 등의 선언 된 2 차원 어레이
int **matriz = NULL;
이다 (abc
기능에서)이 코드 부분을 new
연산자를 사용하십시오. 내가 뭘 잘못하고있어? 또한 main
함수에서 메모리를 직접 할당하는 것이 더 낫습니까? 그게 코드를 더 읽기 어려운가요?
PS : 넷빈즈에 디버깅 (또는 단자) 나는 (내가 잘못 아니에요 경우 NULL
) matriz
ADRESS는 = 0x0
이
코드가 정상적으로 나타납니다. 메모리가 할당되지 않았다는 아이디어를 뒷받침하는 증거는 무엇입니까? –
'matriz'가 2D 배열이라고 생각하지 않습니다; 이것은 포인터에 대한 포인터이며,'matrix [i] [j]'가 2D 배열처럼 작동하도록 조심스럽게 초기화 될 수 있습니다. –