Fonction qui crash à retardement

Résolu
clad67150 Messages postés 6 Date d'inscription vendredi 29 août 2003 Statut Membre Dernière intervention 5 novembre 2006 - 5 nov. 2006 à 19:57
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 - 6 nov. 2006 à 10:39
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

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
6 nov. 2006 à 10:39
utilises vsnprintf et strncat, plutot, pour eviter que ta chaine ne puisse dépasser

Renfield
Admin CodeS-SourceS- MVP Visual Basic
3
Rejoignez-nous