Dwuwymiarowa tablica o zmiennym rozmiarze w strukturze

0

Podczas nauki do egzaminów natrafiłem na takie oto zadanie(język c) z którym mam problem:

zdefiniuj strukture posiadająca następujące pola : dwie liczby całkowite oraz dwuwymiarową tablicę liczb typu zmiennoprzecinkowych o podwójnej prazycji o rozmiarze alokowanym dynamicznie

Napisałem coś takiego

   struct my_struct{
     int firstField;
     int secondField;
     int columns;
     int rows;
     double tab[columns][rows];
}

Lecz kompilator nie przyjmuje tego do wiadomości.Jak powinienem to rozwiązać?

1

Zadanie jest niemożliwe do rozwiązania, nie możesz mieć dwuwymiarowej tablicy o dynamicznych rozmiarach.

W zadaniu chodzi zapewne o to, abyś miał tablicę wskaźników na tablice, czyli double**.

0

Cześć,
Ostatnie pole struktury to VLA.
Kompilator nie przyjmuje tego do wiadomości, ponieważ na tę chwilę columns oraz rows nie są jeszcze znane. Nie może ich zatem użyć. Nawet gdyby mógł - zastanów się: Jaką wielkość miałaby tablica na podstawie tego co napisałeś? ;)
Kolega @kq dobrze Ci mówi, zastosuj dynamiczną tablicę (tak jak masz w poleceniu) i alokuj pamięć (na przykład) funkcją malloc(), możesz zostawić pola columns oraz rows aby przy tworzeniu obiektu tej struktury możliwe było podanie docelowego rozmiaru.

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