Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > pl.comp.programming > #31929

Re: g++ debug bez inicjalizacji pamięci

From bartekltg <bartekltg@gmail.com>
Newsgroups pl.comp.programming
Subject Re: g++ debug bez inicjalizacji pamięci
Date 2018-11-01 15:59 +0100
Organization ATMAN - ATM S.A.
Message-ID <prf4dd$nac$1@node2.news.atman.pl> (permalink)
References <2d28eae2-6996-4a78-a3ae-a0aec84a1a04@googlegroups.com> <1955d2cc-8d0c-4eae-b9b9-611430b20aae@googlegroups.com> <2a9826bb-a908-43ee-bc3b-073287ad720b@googlegroups.com> <prdmc9$e8b$1@node2.news.atman.pl> <9f406662-30cc-4e29-8166-89ee3e2123be@googlegroups.com>

Show all headers | View raw


On 01.11.2018 08:33, szykcech@gmail.com wrote:
>>>>> Chodzi o to, że wersja debug ma inicjalizowaną pamięć zerami, a wersja release nie.
>>>>
>>>> Ale jaka pamięć (nie) jest inicjalizowana zerami? Chodzi o obiekty statyczne (w tym globalne), czy dynamiczne?
>>>
>>> G++ w wersji debug automatycznie inicjalizuje alokowaną pamięć zerami. G++ nie robi tego w wersji release
>>
>> Wydaje mi się, że Maciejowi chodziło o co innego:
>>
>> Co robisz, że używasz jakiejś pamięci, której nie dotknął
>> konstruktor jakeigoś obiektu.
> 
> Głowny problem w tym programie to wskaźniki i zmienne typu int (i ich warianty). Wskaźniki globalne i w klasach wyszukałem i zainicjalizowałem. 

Wskaźniki to ogolnie coś, czego powinno się unikać w c++,
ale rozumiem, ujowo napisana biblioteka do raspi w stylu
procków embended  4kB ramu:-)

Podobnie globalne...

Może da się tego pozbyć;-)

>Jednak problem może dotyczyć zmiennych lokalnych. 
>Wygląda nato, że w wersji debug są inicjalizowane przez kompilator, 
> a w wersji release nie... I ja chcę by w wersji debug nie były 
 > inicjalizowane - by szybciej znaleźć błąd.

Nie deklaruj zmiennych bez przypisania.
Jeśli się nie da, a chcesz wyłapać (bez debugera;p) użycie
wskażnika bez zainicjalizoanej wartości, inicjalizuj je
na wartość, które na pewno wywali program.

No, chyba, że przewidujesz, żę wskaźnik możę na nic nie pokazywać w 
trakcie działąnia praogramu i wszędzie sprawdzasz, czy nie jest nulem,
to wtedy ręcznie inicjalizuj go na null. Ale IMHO to prawie zawsze
gorsze rozwiazanie

pzdr
bartekltg

Back to pl.comp.programming | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

g++ debug bez inicjalizacji pamięci szykcech@gmail.com - 2018-10-30 12:43 -0700
  Re: g++ debug bez inicjalizacji pamięci Maciej Sobczak <see.my.homepage@gmail.com> - 2018-10-30 23:57 -0700
    Re: g++ debug bez inicjalizacji pamięci szykcech@gmail.com - 2018-10-31 09:21 -0700
      Re: g++ debug bez inicjalizacji pamięci szykcech@gmail.com - 2018-10-31 09:25 -0700
      Re: g++ debug bez inicjalizacji pamięci bartekltg <bartekltg@gmail.com> - 2018-11-01 02:54 +0100
        Re: g++ debug bez inicjalizacji pamięci szykcech@gmail.com - 2018-11-01 00:33 -0700
          Re: g++ debug bez inicjalizacji pamięci bartekltg <bartekltg@gmail.com> - 2018-11-01 15:59 +0100
  Re: g++ debug bez inicjalizacji pamięci Wojciech Muła <wojtek.mula@gmail.com> - 2018-10-31 10:06 -0700
    Re: g++ debug bez inicjalizacji pamięci szykcech@gmail.com - 2018-10-31 10:19 -0700
      Re: g++ debug bez inicjalizacji pamięci Wojciech Muła <wojtek.mula@gmail.com> - 2018-11-21 05:17 -0800

csiph-web