11. april 2003 - 16:29Der er
12 kommentarer og 1 løsning
Returnere 3 stk arrays (int xxxxx[ ][ ];) fra en funktion - - - ?
(min kode er nederst i teksten)
- jeg kalder denne funktion fra mit hovedprogram og vil så gerne returnere de tre arrays; date, time og data - findes der en let forståelig måde at gøre dette på ???
// Funktionen OnHent() henter dato, tid // og random data fra filen "måledata.txt"
/*********************************************/ void CTal1Dlg::OnHent() { const int lines = 10; const int sizeline =25; const int sizedate =5; const int sizetime =5; const int sizedata =4;
int i; int j;
int date[lines][sizedate]; int time[lines][sizetime]; int data[lines][sizedata];
Du kan ikke returnere mere end 1 værdi fra en funktion, men du kan fx give funktionen pointere til nogle arrays med, som du så kan "udfylde" i din funktion.
For at undgå statiske variable eller dynamisk allokering med new eller malloc så vil jeg foreslå std::vector.
#include <vector> using std::vector; typedef vector<int> IntVector; struct result3 { IntVector datep, timep, datap; } struct result3 CTal1Dlg::OnHent() { int date, time, data; // Takket være magi får date, time og data værdier her datep.push_back(date); timep.push_back(timep); datap.push_back(timep); }
Det koster ekstra kald af copy constructors, men du slipper for at bekymre dig om statiske (globale) variabler eller dynamisk allokeret data.
ok - tak for hjælpen - nu har jeg vist til et par timer.....
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.