Pointer értékének átadása?
Van két char * válltozóm.
Egyikbe írok valami. (printf-el látom is.)
Hogyan tudom ezt az értéket úgy átadni egy másik char* válltozónak hogy az ne az első-re mutasson, hanem egy új memóriacímen tárolja el az értéket?
Ha ilyen feladatod van, két dolog jöhet szóba:
1) Ha konkrétan char*-gal dolgozol, akkor az strcpy,
2) Ha általános megoldás kell, akkor memcpy.
char* strcpy(char* hová_másolsz, char* mit_másolsz);
Példa:
char Eredeti[] = "Ez egy szöveg";
char Masolat[51]; //Figyelj arra, hogy a másolatot tároló memóriaterületet előre le kell foglalni
strcpy(Masolat, Eredeti);
void* memcpy(void* hová_másolsz, void* mit_másolsz, size_t hány_bájtot_kell_másolni);
Példa:
int Eredeti[] = {5, 6, 7, 8, 9};
int Masolat[5]; //Figyelj arra, hogy a másolatot tároló memóriaterületet előre le kell foglalni
memcpy(Masolat, Eredeti, sizeof(int) * 5);
#include <stdlib.h> // ez gondolom megvan
char *ujstring = (char *)malloc(szöveg_hossza);
for (int i=0; i<szöveg_hossza; i++) {
ujstring[i] = regi[i];
}
vagy lehet strcpy() függvénnyel.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!