Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Aiuto copia array char
Forum - C/C++ - Aiuto copia array char

Avatar
dengel (Normal User)
Newbie


Messaggi: 10
Iscritto: 22/12/2009

Segnala al moderatore
Postato alle 14:15
Sabato, 17/12/2011
Ciao a tutti io ho 2 array di puntatori char
Codice sorgente - presumibilmente C/C++

  1. char *array1[MAX];
  2. char *temp[MAX];



Vorrei eseguire la copia di array1 in temp ma non ho capito come allocare dinamicamente e come effettuare la copia.
ho provato con strcpy ma non mi permette di copiare niente

Inoltre se durante la copia volessi concatenare ad ogni elemento una data stringa come posso fare?

fatemi sapere :k:

PM
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5475
Iscritto: 03/01/2010

Up
0
Down
V
Segnala al moderatore
Postato alle 15:05
Sabato, 17/12/2011
Sono proprio "array di puntatori" quelli che ti servono? Sicuro ? O stai facendo confusione con un semplice array di char?

Chiarisci un po' ...

array di char scusami ho proprio sbagliato a scrivere ! - dengel - 17/12/11 20:34
Quindi non è char *array1[MAX] ma char array1[MAX] - nessuno - 17/12/11 20:40
non ho chiara una cosa..la sintassi di strcpy o strcat vuole un puntatore a char..quindi io se ho un array come nel mio codice come devo fare ? mi hanno detto di usare sprintf ma mi va in segmentation fault..qualcosa non mi torna :( - dengel - 18/12/11 01:10


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
PM
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5475
Iscritto: 03/01/2010

Up
0
Down
V
Segnala al moderatore
Postato alle 10:07
Domenica, 18/12/2011
Cosa c'entra adesso sprintf?

Se hai due stringhe

Codice sorgente - presumibilmente C/C++

  1. char array1[MAX];
  2. char temp[MAX];



(e bada bene che ho tolto gli asterischi) copi la prima nella seconda con

strcpy(temp, array1);

dato che temp e array1 sono puntatori a char.


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
PM
Avatar
anthony015 (Member)
Pro


Messaggi: 116
Iscritto: 20/05/2011

Up
0
Down
V
Segnala al moderatore
Postato alle 18:04
Giovedì, 29/12/2011
se hai 2 array di puntatori a char fai:
Codice sorgente - presumibilmente Plain Text

  1. for(int i=0;i<MAX;i++)
  2. strcpy(temp[i],array[i]);


se invece hai 2 puntatori a char fai:
Codice sorgente - presumibilmente Plain Text

  1. strcpy(temp,array);


Nel primo caso non è detto che voglia copiare i dati puntati, ma i puntatori. In questo caso, il discorso è diverso ... - nessuno - 29/12/11 18:11
PM