Domanda idiota su C++ char*
ho una piccola lacuna
voglio che l'utente inserisca una stringa di cui non conosco la lunghezza
char *stringa;
std::cin >> *stringa;
restituisce un bel segmentation fault
dove sbaglio?
voglio che l'utente inserisca una stringa di cui non conosco la lunghezza
char *stringa;
std::cin >> *stringa;
restituisce un bel segmentation fault
dove sbaglio?
Risposte
troncata la testa al toro utilizzando la classe string
ma mi resta la curiosità.
ma mi resta la curiosità.
dichiarato cosi' stringa e' un puntatore a char, andrebbe prima allocata la memoria per poterci
memorizzare una stringa... e poi "*stringa" e' il _contenuto_ del puntatore, "stringa" e' l'indirizzo a cui punta.
memorizzare una stringa... e poi "*stringa" e' il _contenuto_ del puntatore, "stringa" e' l'indirizzo a cui punta.
La sintassi non e' quella giusta. Ecco come si puo' fare in alternativa:
Comunque e' molto meglio orientarsi sulle stringhe se si vuole fare del C++.
#include<iostream> using namespace std; int main(){ char * string; string=new char[50]; cout << endl; cin >> string; for(int i=0;i<50;++i) { cout << string[i]; } cout << endl; }
Comunque e' molto meglio orientarsi sulle stringhe se si vuole fare del C++.
Esatto, david_e 
prima si dichiara il puntatore a stringa, poi si alloca la memoria con "new". Anche io preferirei l'uso di "string" perche e' piu pratico eccetera, ma credo che didatticamente imparare i char sia utile

prima si dichiara il puntatore a stringa, poi si alloca la memoria con "new". Anche io preferirei l'uso di "string" perche e' piu pratico eccetera, ma credo che didatticamente imparare i char sia utile

"superpunk733":
Esatto, david_e
prima si dichiara il puntatore a stringa, poi si alloca la memoria con "new". Anche io preferirei l'uso di "string" perche e' piu pratico eccetera, ma credo che didatticamente imparare i char sia utile
Quoto, ma il char * comunque non lo userei col cin per una questione di stile... o si fa C++ o C...
