U
Utente cancellato 129487
Ospite
deleted
Ultima modifica da un moderatore:
Segui il video qui sotto per vedere come installare il nostro sito come web app sulla tua schermata principale.
Nota: Questa funzionalità potrebbe non essere disponibile in alcuni browser.
Pubblicità
*(e + "\n") = 10;
e["\n"] = 20;
In function ‘int main()’:
error: assignment of read-only location ‘*(((const char*)"\012") + ((sizetype)e))’
*(e + "\n") = 10;
^
error: assignment of read-only location ‘"\012"[((int)e)]’
e["\n"] = 20;
^
Non ho sinceramente capito cosa tu intenda...grazie mille,solo che non ho capito bene una cosa,se con questa istruzione visualizzo cosa c'è all'interno dell'indirizzo di RAM datomi dalla somma tra quello di "\n"+138 allora perchè capita questo?:
se scrivo questo codice:
Codice:int main() { char e=138; cout<<"questo programma "<<e<<" stato scritto in C++\n"; cout<<"questo programma è stato scritto in C++\n"; //Da notare che è non viene visualizzato poichè nel CODICE ASCII non è presente la sua codifica cout<<"è\t"<<e<<endl; cout<<e+"\n"<<endl; system ("PAUSE"); return 0; }
in uscita ho questa schermata:
Visualizza allegato 103710
Altrimenti se eseguo quest'altro codice:
Codice:int main() { char e=138; cout<<e+"\n"<<endl; system ("PAUSE"); return 0; }
in uscita ho:
Visualizza allegato 103709
Quindi come è possibile questo?,e come se i cout chiamati prima influenzassero il contenuto dell'indirizzo di memoria dato dalla somma "\n"+138.......:grat:
Come ti ho detto la stringa è allocata da qualche parte in memoria, a discrezione del SO. Il suo indirizzo non è costante. Al suo variare, chiaramente, cambia anche l'indirizzo risultante da quello spiazzamento.Quindi adesso,la mia domanda è:
com'è possibile che eseguendo il primo codice ho come risultato il contenuto dell'indirizzo di memoria,mentre eseguendo il secondo ho semplicemente l'esecuzione di "\n"??