newbie: kopiere char* to char*

09/04/2014 - 21:15 von tokauf | Report spam
Hallo,

ich bin newbie in Sachen C. Und: ich möchte einem char* einen anderen chhar* zuweisen?
Geht das? Danke.

o-o

THomas
 

Lesen sie die antworten

#1 Matthias Fulz
09/04/2014 - 21:33 | Warnen spam
wrote:

Hallo,

ich bin newbie in Sachen C. Und: ich möchte einem char* einen anderen
chhar* zuweisen? Geht das? Danke.

o-o

THomas



Naja dazu gibt es mehrere Möglichkeiten:

1.) Einfach nur den pointer setzen - damit hast du keine Kopie beide char*
zeigen dann auf den selben Speicherbereich:

char *src;
char *dst;

src = dst;

Wenn du jetzt z.b. "Hallo" in dem char* hast dann würde:

src[0] = 'B';

auch dst auf "Ballo" setzen.


2.) Richtiges kopieren:

du musst dafür dann entsprechend den Speicher allozieren (Ich gehe jetzt mal
davon aus, dass du einen null-terminierten String in deinem char * hast und
deine Quelle char *src heisst):

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(int argc, char **argv) {
char *src = "Hallo\0";
char *dst;
size_t srcSize = strlen(src) + 1;
dst = (char *) malloc(sizeof(char) * srcSize);
if(!dst)
exit(-1); // speicherfehler

dst = (char *) memcpy(dst, src, srcSize);
if(!dst)
exit(-1); // memcpy fehler

printf("String src: %s", src);
printf("String dst: %s", dst);

exit(0);
}

damit hast du dann den ganzen Speicherbereich mit Inhalt (+ \0-byte)
kopiert.

Es gibt natürlich noch viele andere Möglichkeiten das zu erledigen ;)

Hoffe das hat dir ein bisschen geholfen.

Gruß,

Matthias

"Those who cannot remember the past are condemned to repeat it"
|--< Geroge Santayana >--|

Ähnliche fragen