Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Sprawdzanie rozmiaru dynamicznej tablicy int

Ostatnio zmodyfikowano 2015-03-13 16:04
Autor Wiadomość
michal11
» 2015-03-11 20:00:22
Uzupełnię jeszcze post NopeDotAvi.
Skoro rozmiar tablicy trzymany by był jako zmienna stała to jak niby tworzone by były tablice dynamiczne (z definicji, tworzone w trakcie działania programu)?

C/C++
cin >> n;
int tab = new int[ n ];
P-128180
Monika90
» 2015-03-11 20:10:35
const nie oznacza "znana w czasie kompilacji", można przecież tak
C/C++
const unsigned n = wczytaj_rozmiar();
const auto tablica = std::make_unique < int[] >( n );

i jak widać nie ma tam  nigdzie new ani delete, oczywiście jeszcze lepiej jest użyć std::vector
P-128182
Brunon3
» 2015-03-11 20:39:53
const
 przecież oznacza "stała" (co raczej każdy wie). ;)

@Monika90: Tak jbc, o std::vector już wspominałem. ;)

-BD.
P-128183
maly
» 2015-03-12 08:43:24
const
 przecież oznacza "stała" (co raczej każdy wie).;)
Nie, const oznacza niezmienna, czyli można ją jakkolwiek zainicjować ale nie da się jej potem zmienić przez zwykłe przpisanie nowej wartości.
P-128202
Brunon3
» 2015-03-12 17:13:47
Czyli
niezmienna != stała
?

;)

-BD.
P-128209
kynol
» 2015-03-12 23:44:47
Wtf maly? Const to stala a nie jakas niezmienna jak to ty napisales, Brunon, wedlug jego teorii const == stala.

Mozna tez uzywac typow wyliczeniowych enum do deklarowania stalych zmiennych.

Monika, jak to? przeciez stala musi byc znana w trakcie kompilacji :P jesli np zadeklaruje sie stala zmienna bez wartosci to bedzie ona miala wartosc nieokreslona ktorej nie da sie zmienic normalnie
P-128236
Lora
» 2015-03-13 01:29:42
@kynol
Monika ma rację. Chodzi o to, żeby stałą const ustawiać w momencie deklaracji, ale może to się dziać już w trakcie działania programu.
C/C++
int wczytaj_rozmiar()
{
    int l;
    cin >> l;
    return l;
}

int main( void )
{
    //...
    const int n = wczytaj_rozmiar();
    cout << n << endl;
    //...
}
Takie coś zadziała. Oczywiście stałej n nie da się już później zmienić.
P-128237
maly
» 2015-03-13 07:00:05
Wtf maly? Const to stala a nie jakas niezmienna jak to ty napisales

const int i = 12;

Zmienna 'i' typu int z modyfikatorem const informującym kompilator o niezmienności zmiennej w czasie kompilacji , '12' to stała.
W tym wypadku zmienną 'i' rzeczywiście można traktować jako stałą ale...

Takie coś zadziała. Oczywiście stałej n nie da się już później zmienić.
Nie wiem czy to jest zgodne ze standardem C++ ale każdy używany przezemnie kompilator zmieni waszą 'stałą'.
C/C++
int wczytaj_rozmiar()
{
    int l;
    cin >> l;
    return l;
}

int main( void )
{
    //...
    const int n = wczytaj_rozmiar();
    * const_cast < int *>( & n ) = 666;
    cout << n << endl;
    //...
}

Najlepiej by było aby żeby ekspert jakowyś wypowiedział się na ten temat, bo wypowiedzi niewiele wiedzących(w tym i Ja) mogą innych wprowadzić w błąd.
P-128238
1 2 « 3 » 4 5
Poprzednia strona Strona 3 z 5 Następna strona