C a spajanie retazcov

Programovacie jazyky, rady, poradňa...
Mek
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4661
Registrovaný: 23 mar 2005, 23:00
Bydlisko: ZA <-> TN
Kontaktovať používateľa:

C a spajanie retazcov

Príspevok od používateľa Mek »

Zdravim, po tom, co som nad tym stravil X hodin a prehladal snad cely internet, sa obraciam sem s prosbou o pomoc.
Mam dve premenne deklarovane takto:

Kód: Vybrať všetko

char sprava[BUFFER_SIZE];
char nick[10];
pricom BUFFER_SIZE je 1024.
Potrebujem z nich vyrobit tretiu premennu (retazec) v tvare

Kód: Vybrať všetko

<nick> sprava
No problem je v tom, ze strcat pri svojej cinnosti modifikuje prvy parameter. Najradsej by som bol, keby som mal na to spajanie retazcov funkciu, napr:

Kód: Vybrať všetko

char* spoj(char *co, char *s_cim)
{
	char zal[255];
	sprintf(zal,"%s%s",co,s_cim);
	return zal;
}
Lenze tuna kompilator pinda, ze vraciam pointer k lokalnej premennej (dmnce).
Vie niekto co s tym, pliz? :?
neutronmind
Expert
Expert
Príspevky: 189
Registrovaný: 05 aug 2008, 14:17

Príspevok od používateľa neutronmind »

Tu pamat budes pravdepodobne musiet alokovat dynamicky, cize

Kód: Vybrať všetko

char *zal; 
zal=(char *)malloc(255*sizeof(char));
Problem je asi v tom, ze sa pamat alokuje v rozlicnych pamatovych segmentoch pri dynamickej a statickej alokacii. :roll:

//nie je zac :)
Mek
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4661
Registrovaný: 23 mar 2005, 23:00
Bydlisko: ZA <-> TN
Kontaktovať používateľa:

Príspevok od používateľa Mek »

neutronmind, diky moc, toto bolo presne ono, mas u mna kladnu K :D
Napísať odpoveď