Witam.
Podczas robienia pracy domowej natrafiłem na problem dla mnie nie do przeskoczenia. Mianowicie moim zadaniem jest zadeklarować macierz typu double o rozmiarach 100 000 na 100 000, a następnie wyzerować wszystkie jej elementy. Mam przy tym skorzystać ze wskaźnika i operatora "new".
Napisałem coś takiego:
// zadanie 5.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
double **tablica2D= new double*[100000];
for (int i = 0; i < 100000; i++)
{
tablica2D[i]= new double[100000];
}
for (int i = 0; i < 100000; i++)
{
for (int j = 0; j < 100000; j++)
{
tablica2D[i][j]=0;
}
}
}
Co już wiem:
- program zatrzymuje się przy macierzy rzędu 2476 na 100 000 i kończy działanie;
- nie można zaalokować więcej niż 4 GB pamięci;
Czego nie wiem:
- jak rozwiązać ten problem;
Bardzo proszę o pomoc.
Nadmienię, że ostatnio styczność z C++ miałem dwa lata temu, więc prosiłbym o proste tłumaczenie. :)