Funktion mit const wchar_t als parameter
-
Sebi84 schrieb:
Nein, da habe ich keine Vorgaben. Die Funktion ist auch nur als Prototyp bekannt. Die konkrete Implementierung macht jemand anderes. Ich muss mich jedoch an diesen Prototyp halten.
Du wirst doch wohl wissen, was du als zweites Argument an die Funktion übergeben sollst? Wie sollst du sonst damit arbeiten?
-
Naja halt einen wchar_t in den man einen Text schreiben kann der auch so lang ist wie der den ich übergeben habe. Mir würde es für Testzwecke reichen wenn ich einen text übergeben kann und der dann wieder zurückkommt.
-
Sebi84 schrieb:
Naja halt einen wchar_t in den man einen Text schreiben kann der auch so lang ist wie der den ich übergeben habe. Mir würde es für Testzwecke reichen wenn ich einen text übergeben kann und der dann wieder zurückkommt.
Dir ist aber schon klar, dass die beiden Parameter verschiedene Typen haben? Wie willst du also den gleichen "Text" (ich nehme an, du meinst Array von Strings) zurückerhalten und 2. wie ist es zu verstehen, dass dieser die gleiche Länge haben soll? Wie weiss man, ob zwei verschiedene Typen die gleiche Länge haben?
Im Ernst: Hast du keine vernünftige Information über die Schnittstelle bekommen? Es ist einfach sehr schwierig, dir zu helfen, wenn man nicht einmal weiss, was die Funktion tut.
-
Eigentlich soll sie nur den Text zurückgeben der ihr übergeben wurde. Mehr nicht. Klingt sinnlos, ist aber für ein Beispiel nützlich.
-
Hast du meinen letzten Beitrag überhaupt gelesen?
-
Ich nehme mal an das ganze soll auf sowas rauslaufen:
#include <cstring> #include <iostream> using namespace std; void pass( const char* data, char** ret ) { *ret = new char[strlen(data)+1]; strcpy(*ret, data); } int main() { char* ret; pass("Hello world", &ret); cout << "*" << ret << "*" << endl; delete[] ret; }Kann es sein, dass das "const" bei deinem "const wchar_t** out" nicht hingehört?
-
Ja ich bin mir sicher das der zweite Parameter auch ein const ist. Wundert mich auch, aber gibt es trotzdem eine Möglichkeit ihn zu verwenden?
-
Es ist genau das, was Dravere sagte. Da du uns offenbar keine genaueren Angaben über dein Problem mitteilen willst, müssen wir wild im Zeug rumraten. L'abra d'or's Annahme ist eine von vielen möglichen.
Wir wissen nicht, wer den Speicher anfordert, wer ihn freigibt, worauf der Doppelzeiger zeigt oder wie Input- und Outputparameter zusammenhängen. Wir wissen absolut rein gar nichts. Und du verlangst allen Ernstes von uns, dass wir unter diesen Voraussetzungen dein Problem lösen?

Compilerfehler zu beseitigen ist nicht das Problem. Aber wir wollen schliesslich, dass das Programm korrekt läuft, oder? Also bitte mach dir die Mühe und teile uns die zentralen Informationen über die Schnittstelle deiner Funktion mit.
-
SAg deinem Partner er soll gefälligst std::string nutzen.
-
Icematix schrieb:
SAg deinem Partner er soll gefälligst std::string nutzen.
Wenn dann std::wstring.
Aber auch wenn wir hier in C++ sind, heißt es noch lange nicht, dass man keinen const (w)char* übergeben soll.
Dazu kann man erst was sagen wenn man genauere Infos hat was die Funktion genau tut/tun soll, ob es Seiteneffekte hat usw.