logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Jak dynamicznie tworzyć tablicę jednowymiarową w C++?

Borys85 16 Paź 2005 14:14 1749 7
REKLAMA
  • #1 1903056
    Borys85
    Poziom 19  
    Posty: 447
    Pomógł: 6
    Ocena: 5
    Witam serdecznie.

    Przedstawię tylko część projektu z którą nie mogę sobie poradzić.
    Otóż:

    1.Użytkownik podaje ile liczbę n (która oznacza ile liczb za chwilę poda)
    2.Chciałem utworzyć tablicę jednowymiarową o długości n, żeby w każdej komórce umieścić wartoś, w celu późniejszego wykorzystania.
    3. Proble jest taki, że długość tablicy musi być z góry ustalona. Wyjściem nie jest chyba, aby ustalić długoś: 99999999.

    Proszę o wskazówkil
  • REKLAMA
  • REKLAMA
  • #4 1916431
    LuznyTomasz
    Poziom 15  
    Posty: 204
    Pomógł: 13
    Ocena: 1
    Jakiego kompilatora używać żeby nie pozwalał na takie sztuczki? To nie jest chyba zgodne z regułami C++.
  • REKLAMA
  • #5 1916944
    Bielsky
    Poziom 21  
    Posty: 333
    Pomógł: 30
    Ocena: 19
    Z tego co pamiętam, takie tworzenie tablic miało wejść do standardu c++, a przynajmniej toczyła się nad tym dyskusja.
    To wcale nie musi być sztuczka. W c (w odróżnieniu od c++) jest to dopuszczalne.
  • #6 1917469
    Ganz
    Poziom 17  
    Posty: 299
    Pomógł: 10
    Ocena: 2
    jemand napisał:
    ggc umozliwia rowniez dynamiczna alokacje tablicy na stosie:
    
    int n;
    cout<<"Ile liczb"; 
    cin>>n; 
    int tablica[n];
    


    W najlepszej książce do C++ Symfonii Grębosza jest podany ten przykład, ale ... jako niemozliwy do zrealizowania dokładnie w ten sposób.
  • REKLAMA
  • #7 1917530
    lukasx17
    Poziom 12  
    Posty: 26
    Pomógł: 1
    Ocena: 5
    Ganz - moze i jest to najlepsza ksiazka, ale pod wzgledem latwosci przyswajania z niej wiedzy. Jest wiele lepszych ksiazek do C++ a Symfonia i Pasja zostaly napisane kawalek czasu temu, a swiat idzie do przodu...
  • #8 2258807
    Borys85
    Poziom 19  
    Posty: 447
    Pomógł: 6
    Ocena: 5
    Dynamiczny przydział Pamięci - jedyny sposób.

Podsumowanie tematu

✨ Dyskusja dotyczy dynamicznego tworzenia tablicy jednowymiarowej w C++ o rozmiarze określonym przez użytkownika w czasie działania programu. Problemem jest konieczność ustalenia rozmiaru tablicy przed kompilacją, co uniemożliwia statyczne deklarowanie tablicy o zmiennej długości. Rozwiązaniem jest dynamiczna alokacja pamięci za pomocą operatora new, np. int* pTablica = new int[n];, gdzie n jest podane przez użytkownika. Po zakończeniu pracy z tablicą należy zwolnić pamięć poleceniem delete[]. W dyskusji pojawiła się także wzmianka o możliwości dynamicznej alokacji tablicy na stosie (VLA), jednak jest to niezgodne ze standardem C++ i zależy od kompilatora. Wspomniano, że w C jest to dopuszczalne, a w C++ trwają dyskusje nad standaryzacją takiego rozwiązania. Autor potwierdził, że dynamiczny przydział pamięci jest jedynym właściwym sposobem realizacji tego zadania.
Wygenerowane przez model językowy.
REKLAMA