cs_MLine
Messages postés20Date d'inscriptionjeudi 8 mai 2003StatutMembreDernière intervention11 juin 2003
-
9 juin 2003 à 16:50
cs_payen
Messages postés252Date d'inscriptionmercredi 25 octobre 2000StatutMembreDernière intervention 1 mai 2005
-
10 juin 2003 à 12:27
Dans c++ builder 5, je déclare une matrice dans ma classe Organism :
class Organism
{
// plein d'autres trucs
protected :
static float DispCoeff[100][100];
};
et dans le .cpp :
float Organism::DispCoeff[100][100];
Lorsque la matrice a une taille de 20*20, aucun problème.
Mais si elle est de taille 100*100 (ou plus), ça compile mais j'obtiens immédiatement l'erreur :
Project Project6.exe raised exception class EAccessViolation with message "Access Violation at adress 0040B2B7. Write of adress 004AAA20". Process stopped. Use Step or Run to continue.
Y-a-t-il des options particulières de compilation pour de grosses tailles de matrices ?? Je ne vois pas ce qui bloque :question)
cs_MLine
Messages postés20Date d'inscriptionjeudi 8 mai 2003StatutMembreDernière intervention11 juin 2003 10 juin 2003 à 11:38
Je ne crois pas que l'allocation dynamique y change grand chose... Je viens d'apprendre que la taille mémoire disponible pour les attributs statiques est de 64 kB. Or une matrice de float de taille 40*40 en prend 38 kB, et une de taille 80*80 prend 153 kB... donc mon erreur s'explique.
Mais là, il me faudrait un super pro de C++ Builder pour me dire comment régler les options du compilo pour augmenter l'espace disponible par attribut statique svp !!!
Je pense que c'est pas gagné :sad)
cs_payen
Messages postés252Date d'inscriptionmercredi 25 octobre 2000StatutMembreDernière intervention 1 mai 2005 10 juin 2003 à 12:27
fais de l'alloc dynamique! j'ai mis un post ce matin avec tout ce qu'il faut pour allouer/desallouer memoire ...
si ca change rien, alors vraiment j'comprends plus ...