problem z zadaniem, niezrozumiały

0

Witam
Sprawa wygląda tak, że u mnie na lekcji wszystkim to działa, prowadzącemu też i tylko ja mam błędy o użyciu parametru poza ciałem funkcji. Używamy tego samego kompilatora. Dev c++ 5.11. To jest tylko przykład zadania na tablicach dwuwymiarowych a problem polega na tym ,że ja na każdym tego typu zadaniu mam ten sam błąd. Szukałem rozwiązań, jedynie odpowiedzi żeby spróbować na wektorach np. Potrafi ktoś pomóc ?
screenshot-20210311213233.png
screenshot-20210311213250.png

0

double x[][]

2

Dlaczego tagujesz Qt i C, kiedy problem dotyczy C++/Software?

W C++ wielkość tablicy musi być znana w czasie kompilacji, więc parametr funkcji polegający na wartościach innych parametrów nie ma sensu.

0

Tak robimy na lekcji w c# . I u innych działa, to jest skopiowane.

2

Zdecyduj się: C, C++ czy C#? To 3 różne rzeczy. C# jest bardzo różny - jak możesz zauważyć ma kompletnie osobną kategorię na forum.

0

@S.G.: Rzecz w tym, że w C++ kompilator musi dokładnie wiedzieć jaki rozmiar i jaki typ przekazywany jest do funkcji, lub przypisywany zmiennym.
W tym przypadku możesz to zrobić albo podając rozmiar wprost:

#define WIDTH 10
#define HEIGHT 20
void SumWKP( int n, int m, double x[WIDTH][HEIGHT] /* reszta argumentow... */ );

albo podać tablicę jako wskaźnik na wskaźnik (lub wskaźnik na tablicę wskaźników) i rozmiar podać jako oddzielny argument:

void SumWKP( int n, int m, const unsigned int width, const unsigned int height, double x** /* reszta argumentow... */ );
// lub
#define HEIGHT 20
void SumWKP( int n, int m, const unsigned int width, double* x[HEIGHT] /* reszta argumentow... */ );

zależnie od tego, czego potrzebujesz.


Radzę też nauczyć się "googlać" swoje problemy - pierwszy link jaki wyskakuje mi po wpisaniu: "c++ passing two dimensional array to function" zawiera naprawdę dobrą odpowiedź, z którą polecam się zapoznać.

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