Ale skoro wiesz, że chcesz macierz
\(\displaystyle{ 5 \times 6}\), to dlaczego po prostu nie napiszesz
Jeśli chcesz natomiast zaalokować tablicę
\(\displaystyle{ n \times m}\)(gdzie
\(\displaystyle{ n, m}\) to zmienne), to wtedy musisz wiedzieć, czym jest tablica dwuwymiarowa. Pierwsze musisz zaalokować tablicę wskaźników do double długości
\(\displaystyle{ n}\), a potem przejść po tej tablicy i dla każdego wskaźnika zaalokować tablicę długości długości
\(\displaystyle{ m}\).
Kod: Zaznacz cały
double ** dynamic_matrix = malloc(n * sizeof(double *));
int i;
for(i = 0; i < n; i++){
dynamic_matrix[i] = malloc(n * sizeof(double));
}
Jedna uwaga- funkcja malloc zwraca przydzieloną pamięć typu void *. Z tego co czytam, w C jest ona rzutowana na odpowiedni typ automatycznie, w C++ musiałbyś dodatkowo rzutować ją na odpowiedni typ.
Alokacja callociem jest bardzo podobna.