Fonction qui crash à retardement [Résolu]

Signaler
Messages postés
6
Date d'inscription
vendredi 29 août 2003
Statut
Membre
Dernière intervention
5 novembre 2006
-
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
-
Bonjour à tous !
Je viens poster parce que j'ai un petit problème, j'essaye de faire une fonction de debug qui marche comme un printf() et qui affiche le résultat dans un editbox (IDC_DEBUG) seulement elle marche, mais au bout de 20 ou 30 appel a la fonction ca crash, ca doit ètre une fuite de mémoire mais j'ai tout essayé et je trouve pas... :(
Je suis pas encore très expérimenté donc si quelqu'un pouvait m'aider ce serait sympa !

====================================

void debug(char* format, ...)
{
    int len = GetWindowTextLength(GetDlgItem(hDlg, IDC_DEBUG));
    if(len>2000) len = 1000; // limiter le nb de caractères affichés dans la fenetre
    char* z = new char[len+1+1028];
    char* t = new char[1024];
    memset(t, 0, 1024);
    
    GetDlgItemText(hDlg, IDC_DEBUG, z, len+1);
    va_list ap;
    va_start(ap, format);
    vsprintf(t, format, ap);
    va_end(ap);
    
    strcat(z, t);
    strcat(z,"\r\n");
    SetDlgItemText(hDlg, IDC_DEBUG, z);
    SendDlgItemMessage(hDlg, IDC_DEBUG, WM_VSCROLL, SB_BOTTOM, 0);
    delete[] t;
    delete[] z;
}

merci d'avance !

1 réponse

Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
68
utilises vsnprintf et strncat, plutot, pour eviter que ta chaine ne puisse dépasser

Renfield
Admin CodeS-SourceS- MVP Visual Basic