Dwuwymiarowa tablica o zmiennym rozmiarze w strukturze

Odpowiedz Nowy wątek
mandigo
2017-06-21 18:52
mandigo
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ć?

Pozostało 580 znaków

kq
2017-06-21 19:02
kq
Moderator C/C++

Rejestracja: 6 lat temu

Ostatnio: 1 dzień temu

Lokalizacja: Szczecin

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**.


Pozostało 580 znaków

2017-06-22 00:36

Rejestracja: 5 lat temu

Ostatnio: 20 godzin temu

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.

"Members of structure and union types are not allowed to have variably modified type." - MarekR22 2017-06-22 08:55

Pozostało 580 znaków

Odpowiedz

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