Dzień Dobry,
Potrzebuję pomocy z rozwiązaniem problemu związanego z dynamiczną alokacją pamięci.
Poniżej przedstawiam przykładowy kod testowy, które jest banalnie prosty:
uint ** test = nullptr;
test = new uint *;
* test = new uint;
** test = 2;
Z pomocą debuggera wykryłem, że linia "test = new uint*;" zwraca mi adres 0xBAADF00D (magic number).
Szukałem już w internecie na ten temat, ale wszyscy mają prosty problem z brakiem inicjalizacji zmiennych.
Problem występuje nawet w programie, który napisałem rok temu i nic w nim nie zmieniałem.
Wydaje mi się, że problemem może być system operacyjny albo środowisko programistyczne, z którego korzystam (QT).
Chociaż 4 miesiące temu duży program i nie miałem żadnych problemów z pamięcią.
Co ciekawsze, w pracy zainstalowałem z miesiąc temu też QT i tam też nie mam problemów z dynamiczną pamięcią.
Wrzuciłem taki kod, bo myślę, że inny kod namieszałby niepotrzebnie. A problem występuję również w tym kodzie.
Proszę o pomoc. Zabrałem się za pisanie kolejnego dużego programu, a ten problem nie daje mi spokoju.
Z góry dziękuję.
EDIT.
Dobra, nigdy nie zwracałem na to uwagi, ale przy niezaincjalizowaniu wskaźnika jest on równy 0xBAADF00D.
Dlatego mam inne pytanko.
Jak tworzę tablicę wskaźników i chcę się ustawić tymczasowy wskaźnik na początek tej tablicy, skoro mam 0xBAADF00D, to jak mam wskazać ten początek.
Poniżej przykładowy kod:
uint ** test = new uint *[ 10 ];
uint * tempTest = * test;