Realloc bizzar

bigmama94 Messages postés 3 Date d'inscription mercredi 26 mai 2004 Statut Membre Dernière intervention 20 janvier 2005 - 20 janv. 2005 à 12:38
bigmama94 Messages postés 3 Date d'inscription mercredi 26 mai 2004 Statut Membre Dernière intervention 20 janvier 2005 - 20 janv. 2005 à 14:37
Ce probleme me rend fou... :( trouverai un codeur chevronné qui pourra m'éclairer :

voici:


else if ( q 1)<?xml:namespace prefix o ns = "urn:schemas-microsoft-com:office:office" />


{


k=0;


for(int n=s; n <= ((int)image->size/(int)BytesParLigneAct); n++)


{


for(int m=0; m < (int)BytesParLigneAct-q+2; m ++)//


{


.....
}


if( n == ((int)image->size/(int)BytesParLigneAct))


{


o = o + k;


point1 = (char *)realloc(point1,o);


memcpy(point1+(o)-k, point2,k);//+2*(n-1)


hbmp = CreateBitmap(((BytesParLigneAct-q)/3),image->size/(BytesParLigneAct),1,24,(void *) point1);//-q


if(hbmp)


{


.......
}


else


return 4;


x++;


}


s++;


}





else if ( q == 2)


{


/*cree un buuffer intermediare


*/


k=0;


for(int n=s; n <= ((int)image->size/(int)BytesParLigneAct); n++)


{


for(int m=0; m < (int)BytesParLigneAct-q; m ++)//


{


.........
}


if( n == ((int)image->size/(int)BytesParLigneAct))


{


o = o + k;


point1 = (char *)realloc(point1,o);


memcpy(point1+(o)-k, point2,k);//+2*(n-1)


hbmp = CreateBitmap(((BytesParLigneAct-q)/3),image->size/(BytesParLigneAct),1,24,(void *) point1);//-q


if(hbmp)


{


.........
}


else


return 4;


x++;





s++;


}


J ai supprimé qq bout de code qui ont ete testé et qui n influ pas sur mon realloc

En gros je doit remplir un tableau "point1" en plusieur fois puis que tout ceci est dans un boucle: et je dois lui reallouer une memoir plus grande pour pouvoir y ajouter le nouveau contenu de point2.
il y a 4 case mais je vous en ai affiché que 2

la ligne qui cloche c'est :

point1 = (char *)realloc(point1,o);

mais le plus bizzar c est qu elle cloche que dans 1 seul cas!!! quand "q = 1"
mais dans tout les autres ca fonctionne... les codes des else if sont quasiment identique a peu de chose pres!! pk ca marche paaaaaaaaaaaaaaaaaaaaas !!!!!!!

merci d avance

3 réponses

bigmama94 Messages postés 3 Date d'inscription mercredi 26 mai 2004 Statut Membre Dernière intervention 20 janvier 2005
20 janv. 2005 à 12:45
Je precise, le realloc qui cloche me renvoit une valeur non defini!!
dc point1 n as plus de taille!!! pk?
0
bayeto Messages postés 224 Date d'inscription mardi 12 août 2003 Statut Membre Dernière intervention 18 octobre 2010
20 janv. 2005 à 13:22
que vaut point1 avant le realloc ? est-il correctement initialisé? Si c'est la 1ere ini de point1:


o o + k;<?xml:namespace prefix o ns = "urn:schemas-microsoft-com:office:office" />


//point1 = (char *)realloc(point1,o);
point1 = (char*) malloc(o);
0
bigmama94 Messages postés 3 Date d'inscription mercredi 26 mai 2004 Statut Membre Dernière intervention 20 janvier 2005
20 janv. 2005 à 14:37
avant tout, merci de ta reponse puis, effectivement j ai pas precisé! lol

Dc oui il y a un 1 er passage ou il s affecte bien, donc les données qui se trouvent dans point2 sont bien copiées dans point1., c'est lors de la reallocation de point1 pour acceuillir les nouvelles données de point2 que ca plante... j ai fait des tests il ne tolere aucune reallocation superieur à la taille initiale.

Pourtant pour les autres elseif tout fonctionne bien!!
0