![]() |
|
|
google unix.com
|
|||||||
| Forum | Registrati | Regole Forum | Collegamenti | Album | FAQ | Members List | Calendario | Ricerca | Today's Posts | Mark Forums Read |
| Di programmazione ad alto livello Pubblica domande su C, C + +, Java, SQL, e di altri linguaggi di programmazione qui. |
Più di UNIX e Linux Forum Argomenti potreste trovare utili
|
||||
| Filo | Thread Starter | Forum | Risposte | Ultimo Post |
| indirizzi di memoria | areef4u | Di programmazione ad alto livello | 0 | 08-04-2006 08:43 AM |
| Caratteri ASCII multibite | jerardfjay | Shell scripting e di programmazione | 8 | 11-18-2005 02:45 AM |
| Hex caratteri di file ASCII | budrito | HP-UX | 2 | 08-10-2005 11:26 PM |
| stupida domanda su caratteri ASCII | jalburger | Di programmazione ad alto livello | 2 | 09-28-2004 04:56 PM |
| indirizzi di memoria | Paravozzz | Di programmazione ad alto livello | 0 | 10-15-2002 01:17 PM |
![]() |
|
|
LinkBack | Thread Tools | Cerca in questo Thread | Rate Thread | Modalità di visualizzazione |
|
|
|
||||
|
linguaggio C + semplice domanda in materia di indirizzi di memoria e di caratteri ASCII
Basta una semplice domanda (che può sembrare stupida così sopportare con me) che è nata nella mia mente l'altro giorno. Non da soli caratteri ASCII (ad esempio, / n, 0, a) avere un indirizzo di memoria effettivo? La mia domanda sorge, Im perché consapevole del fatto che ogni volta che creo e initalise un puntatore come questa per esempio Codice:
int *ptr = 5; Ho sempre ottenere un puntatore nullo errore. molte grazie |
|
||||
|
Citazione:
|
|
||||
|
Per il codice ho parlato nel mio primo post, Codice:
int *ptr=5; il compilatore (io sto usando gcc btw), ha prodotto uno avviso dicendo che da un puntatore intero è stata fatta senza una necessaria typecast. (trifoglio mi ha avvertito di questo, così questa uscita di gcc è stato probabilmente previsto). Ho provato questo Codice:
char *str="helloworld\n";
printf("string value is %s\n",*str)
e trovato il programma compilato bene, ma in fase di runtime ho ricevuto un errore di segmentazione. Ho anche scoperto che nel primo segmento di codice, se si ignora il compilatore di avvertimento e di eseguire il programma lineare, si ottiene lo stesso errore di run-time. Come i puntatori sono destinate ad essere assegnate a locazioni di memoria (e il punto di valori), con riguardo a questa conoscenza di base e il fatto che i caratteri ASCII sono indirizzi di memoria, sono segmenti di codice non sia tecnicamente corretta? Ultimo a cura di JamesGoh; al 01/24/2008 07:18 PM.. |
|
||||
|
Codice:
int *ptr=5; Puntatore può essere inizializzato a zero o null se non punto a una variabile di tale tipo. Codice:
char *str="helloworld\n";
printf("string value is %s\n",*str)
Il "% s" conversione si specifica un puntatore argomento non l'effettivo carattere che str * punti. Quindi, se si desidera stampare l'intera stringa ... Codice:
printf("string value is %s\n", str);
e se si desidera stampare il carattere * che punti a str ... Codice:
printf("str points to %c\n", *str);
|
|
||||
|
Quindi, questo è sempre il caso (tranne che per l'utente definito stringhe) nel mondo reale di programmazione, anche se i singoli caratteri ASCII (ad esempio 5), sono indirizzi di memoria?
|
|
||||
|
Citazione:
Codice:
char v = '5'; |
![]() |
| Segnalibri |
| Thread Tools | Cerca in questo Thread |
| Modalità di visualizzazione | Vota questo thread |
|
|