Illustrazione programma c

di il
3 risposte

Illustrazione programma c

Salve ragazzi, l'esercizio mi chiede di rappresentare la memoria stack e la memoria heap durante l’esecuzione del programma. (SOTTO)
Vi spiego il programma e i punti non chiari.
Partendo dal main, ho un vettore s di dimensione 8. Successivamente scrivo in s la parola "EsamE" ( senza virgolette ovviamente).
PRIMA DOMANDA: La variabile len a quanto è pari? Ad 8 (ossia alla dimensione del vettore s) o a 5 (ossia al numero dei caratteri)?
Successivamente viene richiamata la funzione func con parametri s e l'indirizzo di s[len], che nel caso di len pari a 5 è l'ultima carattere ( ossia E). Pertanto a è un puntatore ad s e p è un puntatore ad s[len].
SECONDA DOMANDA: quando entro nella func cosa vuol dire che p==a? Cioè, nel nostro caso, se E = E ritorno,cioè il primo e l'ultimo carattere? è questo il significato dell'istruzione if?
TERZA DOMANDA: qual'è il senso delle istruzioni 4 e 5? se A è un carattere perchè mi dice int d?
Allegati:
23841_b16ae6fabbfcb7eed90fc3a6ee666a26.png
23841_b16ae6fabbfcb7eed90fc3a6ee666a26.png

3 Risposte

  • Re: Illustrazione programma c

    Alla prima domanda rispondi da solo se studi la documentazione della funzione strlen

    Per la seconda, ricorda che p e a sono puntatori non caratteri, quindi confronti due indirizzi non due caratteri

    Per la terza, nella riga 4 si utilizza la corrispondenza dei caratteri con il loro valore nel codice ASCII (è possibile che programmate senza neanche aver studiato il codice ASCII?), nella riga 5 si confronta il carattere puntato da p con 'a' e 'z' per capire se è un carattere alfabetico minuscolo.
  • Re: Illustrazione programma c

    oregon ha scritto:


    Alla prima domanda rispondi da solo se studi la documentazione della funzione strlen

    Per la seconda, ricorda che p e a sono puntatori non caratteri, quindi confronti due indirizzi non due caratteri

    Per la terza, nella riga 4 si utilizza la corrispondenza dei caratteri con il loro valore nel codice ASCII (è possibile che programmate senza neanche aver studiato il codice ASCII?), nella riga 5 si confronta il carattere puntato da p con 'a' e 'z' per capire se è un carattere alfabetico minuscolo.


    ho capito che la funzione strlen ritorna il numero di caratteri, però non mi è chiaro se ritorna il numero 5 ( dato che la parole esame è formata da 5 caratteri) oppuure 8 (ossia dalla dimensione totale dell'array).

    per la riga 4 so che si riferisce al valore ASCII, ma non mi è chiara l'istruzione.
  • Re: Illustrazione programma c

    La strlen calcola la lunghezza effettiva non quella massima, lo leggi nella documentazione e facilmente lo provi.

    Nella riga 4 calcoli la differenza tra le lettere maiuscole e le minuscole. Controlla la tanella ascii
Devi accedere o registrarti per scrivere nel forum
3 risposte