HELP: Utilizzo dei char* nelle classi(Vittorini)

millicam.h

Membro
30 Gennaio 2020
1
0
1
Salve.
Avrei bisogno di qualche informazione riguardo l'utilizzo delle stringhe c e dei char* che la Vittorini inserisce spesso nelle prove d'esame.

Se possibile qualcuno potrebbe elencarmi le differenze delle implementazioni tra:
-Stringhe
-Stringhe C(char*)
-Caratteri statici (Per questo mi è tutto chiaro)


Grazie Mille!
 

domenico93

Membro attivo
14 Dicembre 2013
23
7
3
Partiamo dalla base che credo tu già abbia da fondamenti di Informatica.
La stringa di caratteri è un vettore di elementi di tipo char che termina sempre per un carattere terminatore. Questo significa che se la tua stringa di caratteri deve contenere 5 caratteri, in memoria ne verranno salvati 6.

"ciao" -> {'c','i','a','o','\0'}

In C per realizzare una stringa si deve usare per forza un array di char, che possono essere allocati staticamente o dinamicamente. In breve:
- char nome[100]; //allocazione statica <- questo va a finire in "STACK" se l'hai dichiarato in una funzione o andrà nell'area dei "global" nel caso tu l'abbia dichiarato nell'area globale
- char* nome = (char*)malloc(100); //allocazione dinamica <- questa va in "HEAP"

In C++ esiste un altro modo, uso di una classe chiamata string che si trova per l'appunto nella libreria <string>
In genere la Vittorini, chiede di realizzare una classe Stringa che faccia cose simili a questa classe, cioè da la possibilità di immagazzinare, di interagire con gli stream di input e output e cosi via.

Spero di essere stato esauriente.
 
  • Like
Reactions: poel

Seguici su Facebook