Char* verbinden
-
Hallo!
Ich möchte Strings zusammenfügen, aber es scheitert...
Hier mein Ansatz:char* returnValue; char doubleString[9]; double value = getOutput(i); //liefert -1.123 sprintf(doubleString, "%f", value); returnValue = strcat(returnValue, doubleString); //diese Zeile funzt net returnValue = strcat(returnValue, ",");
Was ist da falsch??
-
Hast du denn überhaupt Speicherplatz angefordert, auf den returnValue verweist? Mit nicht-initialisierten Zeigern zu arbeiten ist nicht gerade angenehm.
PS: Und nimm lieber std::string, anstatt dich mit char-Zeigern zu ärgern.
-
CStoll schrieb:
Hast du denn überhaupt Speicherplatz angefordert, auf den returnValue verweist? Mit nicht-initialisierten Zeigern zu arbeiten ist nicht gerade angenehm.
Nein, wie müsste ich das in diesem fall machen?
-
Wie fordert man schon Speicher an - mit new[] natürlich.
char* returnValue = new char[GROESSE];//wieviel Platz du brauchst, mußt du selber wissen returnValue[0]='\0';//strcat() erwartet einen Nullterminierten String, also belegen wir das Array passend vor
-
CStoll schrieb:
Wie fordert man schon Speicher an - mit new[] natürlich.
char* returnValue = new char[GROESSE];//wieviel Platz du brauchst, mußt du selber wissen
So hatte ichs auch probiert aber:
error C2065: 'new': nichtdeklarierter Bezeichner...
-
Kann es etwa sein, daß du dich ins falsche Board verlaufen hast? (oder anders: schreibst du in C oder in C++?)
-
Gretchen schrieb:
CStoll schrieb:
Wie fordert man schon Speicher an - mit new[] natürlich.
char* returnValue = new char[GROESSE];//wieviel Platz du brauchst, mußt du selber wissen
So hatte ichs auch probiert aber:
error C2065: 'new': nichtdeklarierter Bezeichner...
Könnte es sein das du mit einem reinen C-Compiler arbeitest?
Wenn ja, sollte dieser Post ins C-Forum verschoben werden (zumal ich eh keinerlei C++ dabei sehe).cu André
-
Upsi.. *rotwerd*
Ja, es ist C...
-
Dieser Thread wurde von Moderator/in CStoll aus dem Forum C++ in das Forum ANSI C verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
asc schrieb:
Wenn ja, sollte dieser Post ins C-Forum verschoben werden (zumal ich eh keinerlei C++ dabei sehe).
Das hatte ich auch vor - ich wollte nur nochmal nachfragen.
@gretchen: in C verwendet man malloc() -
char* returnValue = malloc(GROESSE);
bzw.char* returnValue = calloc(GROESSE,1);
(bei letzterem kannst du dir auch das Vorbelegen mit '\0' ersparen).