Chaîne de caractère en pascal ( limite de la taille )

altaiir8 Messages postés 39 Date d'inscription   Statut Membre Dernière intervention   -  
altaiir8 Messages postés 39 Date d'inscription   Statut Membre Dernière intervention   -
Salut,

Quelqu'un pourrai m'expliquer pourquoi la limite d'une chaîne de caractère ( string) en pascal est de 255 caractère seulement ?

Merci
A voir également:

2 réponses

nicocorico Messages postés 799 Date d'inscription   Statut Membre Dernière intervention   138
 
Bonjour,

Oui effectivement la limite est fixée à 255 pour le type chaine courte, et la raison est technique : puisqu'une chaine est un bloc de mémoire de taille variable, elle existe en format compact mais limité en taille, ou en format large mais plus coûteux.

La chaine courte est stockée localement, soit sous forme de constante compacte soit sous forme de tableau de 255 caractères, et contient un simple octet définissant le nombre de caractères significatifs - de 0 à 255 caractères max donc- ainsi qu'un zéro terminal selon les langages. Donc lorsqu'on utilise un type chaîne courte sans préciser de taille, elle est allouée à son maximum de 255 caractères, l'octet de taille indiquant la taille utilisée.
Ensuite la chaine longue, non limitée en taille, est un type chaine à zéro terminal. Sa mémoire est allouée dynamiquement et peut donc être redéfinie au besoin, et elle contient un compteur de référence et la taille du bloc alloué...

Les deux types sont à utiliser en fonction des besoins, en prenant notamment en compte la limite de taille. En pratique il vaut mieux privilégier le type court tant que possible, et même en limitant la taille de sa mémoire au maximum qu'on y stockera tant que possible.
0
altaiir8 Messages postés 39 Date d'inscription   Statut Membre Dernière intervention  
 
Merci :)
0