PDA

Visualizza la versione completa : [C++] Acquisizione array caratteri da tastiera


sccc
14-08-2007, 17:02
Ciao raga...come mai ho dei problemi se cerco di acquisire array di caratteri (da tastiera) in questo modo?


void main()
{
char* a=" ";
char* b;

cout << "Esempio swap array caratteri" << endl;
cout << "Inserisci il valore della prima stringa:" << endl;
cin >> a;
cout << "Inserisci il valore della seconda stringa:" << endl;
cin >> b;

}

andbin
14-08-2007, 18:07
Originariamente inviato da sccc


char* a=" ";
char* b;

cout << "Esempio swap array caratteri" << endl;
cout << "Inserisci il valore della prima stringa:" << endl;
cin >> a;
cout << "Inserisci il valore della seconda stringa:" << endl;
cin >> b;
Sbagliatissimo. 'a' e 'b' sono dei puntatori .... a cosa puntano?? Il puntatore 'a' punta ad una stringa "literal" di 1 carattere e NON si deve andare a scrivere su una stringa literal. 'b' non si sa a cosa punta.

Se devi "depositare" dei caratteri all'indirizzo puntato da un puntatore devi assicurarti che ci sia della memoria sufficiente e scrivibile a quel indirizzo.

sccc
14-08-2007, 18:10
ah...mi sa ke ho sbagliato qualcosa...allora scusa, se volessi usare dei puntatori come stavo cercando di fare, come potrei correggere il codice per farlo funionare?

andbin
14-08-2007, 19:06
Originariamente inviato da sccc
ah...mi sa ke ho sbagliato qualcosa...allora scusa, se volessi usare dei puntatori come stavo cercando di fare, come potrei correggere il codice per farlo funionare? Se proprio vuoi usare un puntatore (perché ci sono anche altri modi):


char *a;

a = new char[30];
cin.getline (a, 30);

sccc
14-08-2007, 19:12
ah ok, adesso ho capito come funziona...scusa se ne approfitto, ma secondo te qual è il modo migliore visto che ce ne sono anche degli altri? :D

Loading