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 -
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
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:
- Chaîne de caractère en pascal ( limite de la taille )
- Comment réduire la taille d'un fichier - Guide
- Turbo pascal - Télécharger - Édition & Programmation
- Caractère ascii - Guide
- Caractère spéciaux - Guide
- Caractere speciaux - Guide
2 réponses
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.
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.