• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Zmienianie rozmiaru tablicy

Object Storage Arubacloud
0 głosów
244 wizyt
pytanie zadane 15 maja 2016 w C i C++ przez timrh Mądrala (6,030 p.)
zamknięte 15 maja 2016 przez timrh
Czy ktoś może mi wyjaśnić dlaczego cout nic mi nie wypisuje?

http://pastebin.com/9MvBmQXZ

komentarz zamknięcia: Problem rozwiązany

2 odpowiedzi

+2 głosów
odpowiedź 15 maja 2016 przez criss Mędrzec (172,590 p.)
wybrane 15 maja 2016 przez timrh
 
Najlepsza

sizeof to operator działający w czasie kompilacji. Także sizeof(tailParts) daje po prostu 0 (kompilator "wstawia" sobie 0 wszędzie tam gdzie to napisałeś). W ogóle to co sie dzieje w tym kodzie to jest straszne. Napisz to sensowniej przy użyciu std::vector. Odsyłam do dokumentacji.

+2 głosów
odpowiedź 15 maja 2016 przez niezalogowany

Ciekawe, że ci się to uruchamia bez błędu:

*** Error in `./a.out': free(): invalid pointer: 0x00000000006021a0 ***
Aborted

Wskaźniki gdzieś skopałeś, a to:

sizeof(OldTailArray)/sizeof(*OldTailArray)

nie jest zalecany sposób wydobywania rozmiaru, istnieją sytuacje kiedy nie działa tak jak powinien

komentarz 15 maja 2016 przez timrh Mądrala (6,030 p.)
Jak inaczej można sprawdzić rozmiar?
komentarz 15 maja 2016 przez niezalogowany
Po prostu trzymaj go w jakieś zmiennej
komentarz 15 maja 2016 przez timrh Mądrala (6,030 p.)
Dobry pomysł, dzięki :)
komentarz 15 maja 2016 przez timrh Mądrala (6,030 p.)
Nadal nie działa..

Tail tailParts[0];
int licznik;

void AddPartToTailArray(Tail tail)
{
    licznik++;
    Tail newArray[licznik];
    if(licznik-1 > 0)
    {
        for(int i=0; i<licznik-1; i++)
        {
            newArray[i] = tailParts[i];
        }
    }
    newArray[licznik] = tail;
    delete (tailParts);

    Tail tailParts[licznik];

    for(int i=0; i<licznik; i++)
    {
        tailParts[i] = newArray[i];
    }

    delete(newArray);
}

Podobne pytania

0 głosów
1 odpowiedź 505 wizyt
pytanie zadane 23 stycznia 2022 w C i C++ przez danielch Użytkownik (660 p.)
0 głosów
1 odpowiedź 349 wizyt
pytanie zadane 30 stycznia 2017 w C i C++ przez Adrian__ Nowicjusz (120 p.)
0 głosów
1 odpowiedź 118 wizyt

92,570 zapytań

141,422 odpowiedzi

319,643 komentarzy

61,959 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...