Bonjour,

j'ai rencontr� un probl�me de fonctionnement de mon programme assez vicieux:
il arrivait qu'il me d�clenche une exception du genre "Le programme essai de lire des adresses m�moire auquel il n'a pas droit d'acc�der..."
( Enfin c'est une traduction de l'id�e du message d'erreur ).
Ou alors, j'avais des variables dont les donn�es �taient sabot�es al�atoirement au cours des calculs...

Apr�s avoir pass� plusieurs jours � essayer de localiser la portion de programme en faute , j'ai trouv� ceci:
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
  for( depart = memo + 1, arrivee = indice + 1; depart <= indice; depart++, arrivee++ )
    Liste_gdc[depart] = Liste_gdc[arrivee];
Or il se trouve que les variables d�part et arrivee sont cod�es sur 1 octet sign�.
Alors que memo et indice sont des entiers sur 4 octets.
Ainsi il arrivait parfois que memo + 1 ou indice + 1 d�passent la valeur fatidique de 128, le maximum possible pour une variable de type octet sign�.

Du coup, l'acc�s au tableau Liste_gdc[indice compl�tement impr�visible], occasionnait des cafouillage m�moire.

Je suis �tonn� de ne pas avoir �t� avertit par le compilateur que l'affectation
Code : S�lectionner tout - Visualiser dans une fen�tre � part
depart = memo + 1, arrive = indice + 1
pouvait occasionner un dysfonctionnement. D'habitude, il signale quand les conversions de type sont hasardeuse, mais l� ... rien

Y a-t-il une option � activer, ou une solution envisageable pour que ce genre de probl�me �reintant soit �viter ?