Kilka pytań dotyczących rozmiaru różnych tablic

0

Witam mam pytanie odnośnie tablicy np:

 const int i=5;
int tab[i]={2,3,1,5};

Będzie dobrze tak?Bo const jest stałe i nie można zmieniać jego wartości dlatego można na const zrobić tablice statyczną tak?Tylko,że wtedy to const musze mieć podane na początku programu,ale zawsze kiedy rozmiar tablicy np dowiadujemy się w czasie trwania programu np od użytkownika to wtedy już musze użyć tablicy dynamicznej tak?
Tzn wydaję mi się,że dobrze to rozumiem ale wolę się upewnić.
Jeszcze pytanie do tablicy dwuwymiarowej dynamicznej:

int **tablica=new int*[3];

Tutaj robie tak jakby tablice wskaźników tak ? I potem
mogę robić już nowe tablice np:

tablica[0]=new int[3];

I jak w ten sposób zrobię zainicjalizuję reszte to mam tablice dwuwymiarową tak?

1

Będzie dobrze tak?
tak
le zawsze kiedy rozmiar tablicy np dowiadujemy się w czasie trwania programu np od użytkownika to wtedy już musze użyć tablicy dynamicznej tak?
tak

jezeli chodzi o 2d tablice to robisz to tak

int** ary = new int*[rowCount];
for(int i = 0; i < rowCount; ++i)
    ary[i] = new int[colCount];

czyli tak jak opisales

1

Jeśli chcesz mieć tablicę o dynamicznej wielkości (nieznanej w czasie kompilacji) to użyj std::vector. Używanie nagiego new i delete to antyidiom w C++ od ponad pół dekady.

0

A jeszcze jedno pytanko jak np chce przekazać statyczna tablice dwuwymiarową do funkcji to wiem,że mogę to zrobić tak :

 void odczyt( int tab[3][10])

Przy czym ilości wierszy nie muszę podawać tej 3 mogło by tam nie być tak?
Ale jak tablicy nie mam zrobionej w mainie np tak:

 int tab[10][10]; 

a mam

const int K=3;
const int W =4;
int tab[W][K];

To jak próbuję to przekazać do funkcji tak:
void odczyt( int K, int tab[][K], int W);
To podaje,że K nie może być parametrem,nawet jak dawałem const do K to nie działało.
Czy może źle coś przekazuje?

1 użytkowników online, w tym zalogowanych: 0, gości: 1