übergebener vector kommt leer zurück

drob

Mitglied
hi,
ich übergebe einen std::vector an eine methode
Code:
std::vector<wchar_t**> tmp;
ds->getDeviceName(tmp)

und bekomme von meiner methode
Code:
void DS::getDeviceName(std::vector<wchar_t**> &deviceName)

einen "leeren" Vector zurück...

obwohl innerhalb der methode der vector gefüllt wird (und ich mir den inhalt auch ausgeben lassen kann)
Code:
void DS::getDeviceName(std::vector<wchar_t**> &deviceName){
...
wchar_t* value[3] = {NULL,NULL,NULL};
value[0]=value[1]=value[2] = ...
deviceName.push_back(value);
...

was mache ich falsch?
 
Moin,

Code:
std::vector<wchar_t**> tmp;
ds->getDeviceName(&tmp);
void DS::getDeviceName(std::vector<wchar_t**> *deviceName)
{
...
}

// oder gleich so:

std::vector<wchar_t**> tmp;
tmp = ds->getDeviceName;
std::vector<wchar_t**>  DS::getDeviceName( )
{
   std::vector<wchar_t**> vecResult;
   ...
   ... // fülle den Vector !
   ...
   return vecResult;
}

Gruß
Klaus
 
@vfl_freak: Ob man den Vektor jetzt über einen Zeiger oder per Referenz übergibt macht vom Ergebnis her keinen Unterschied. Auch bei einem Vektor als Rückgabetyp wird man in das von mir geschilderte Problem laufen.

Die einfachste Lösung des Problems wäre meiner Meinung nach, den std::vector<wchar_t **> durch ein std::vector<std::vector<std::string> > > zu ersetzen.

Grüße, Matthias
 
Moin Matthias,

stimmt, darauf ich gar nicht so sehr geachtet :-(

String ist natürlich immer das einfachste und Beste!
Ich weiß allerdings nicht, ob <wchar_t**> hier aus irgendeinem Grund zwingend ist ...

tschüss
Klaus
 
Zurück