strcat, strncat, sprintf...was denn nun?

WorldRacer

Erfahrenes Mitglied
Hi,

ich habe folgendes Problem: Ich möchte zwei chars aneinander fügen. Das habe ich auf folgende Varianten versucht:
Sprache ist C++, System Linux/Unix. Compiler gcc/g++

strcat: Geht nicht, da als zweiter Parameter eine Konstante benötigt wird.

strncat: Geht auch nicht. "Speicherzugriffsfehler".

sprintf: Funktioniert auch nicht. Ebenfalls "Speicherzugriffsfehler".



Was ist daran falsch? Liegt es vielleicht daran, dass ich conusers keinen Wert zugewiesen habe?

Code:
char* conusers;
char* data; 

/* Füllung der Variable data mit chars */
sprintf(conusers, "%s", data[i]);
 
Hallo,

hier erstmal grundlegendes: http://www.win-tux.de/c_013_014.htm#RxxobKap013014040028531F040190

Um die Sache dynamisch zu gestalten, Speicher allozieren nicht vergessen!

Edit:

Code:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main () {
	char conusers[512];
	char *data;
	strcpy(conusers,"Hello");
	data = malloc(strlen(" World")+1);
	printf("strlen=%d ausgabe1=%s\n",(int)strlen(conusers),conusers);
	strcpy(data," World");
	strcat(conusers,data);
	printf("ausgabe2=%s\n",conusers);
	free(data);
	return 0;
}

Um Speicherlecks vorzubeugen sind allerdings die Varianten strncpy und Konsorten zu verwenden.
 
Zuletzt bearbeitet:
Zurück