frage zu VC++ IDE / speicherproblem



  • moin moin!

    hier erstmal mein source...

    void RegAccess::WriteInstallTime()
    {
    	time_t *currentTime = new time_t;
        time(currentTime); 
        tm *mytime = localtime(currentTime); 
    
    	char buf[64];
    	char day[3];
    	char month[3];
    	char year[5];
    	char date[9];
    
    	strcpy(day, itoa(mytime->tm_mday,buf,10));
    	strcpy(month, itoa(mytime->tm_mon+1,buf,10));
    	strcpy(year, itoa(mytime->tm_year+1900,buf,10));
    
    	if (day[1]=='\0') 
    	{
    		day[2]='\0';
    		day[1]=day[0];
    		day[0]='0';
    	}
    	if (month[1]=='\0') 
    	{
    		month[2]='\0';
    		month[1]=month[0];
    		month[0]='0';
    	}
    
    	date[0]=day[0];
    	date[1]=day[1];
    	date[2]=month[0];
    	date[3]=month[1];
    	date[4]=year[0];
    	date[5]=year[1];
    	date[6]=year[2];
    	date[7]=year[3];
    	date[8]='\0';
    
    	db_in(h_InstallTime, date);
    }
    

    also folgendes problem:

    h_InstallTime ist eine membervariable der klasse RegAccess, hat auch nen festen wert, nämlich "InstTime" (name eines schlüssels für die registry).
    weil allerdings konfuserweise die einträge in der registry alle im (Standard)-schlüssel landen (ich habe noch 2 weitere schlüssel, auch deren einträge landen dort) habe ich das programm mal mit dem debugger überprüfen wollen. in dieser funktion hier fiel mir dann auf, dass manche werte in rot geschrieben waren (ich benutze VC++ 6.0). ich vermute, dass ich da irgendwo den speicher aus versehen überschrieben habe oder so. weiß also jemand wo das sein könnte und was die rote schrift mir sagt?

    thx schonmal

    new2cpp 🙄



  • Die rote Schrift sagt AFAIR, dass sich seit dem letzten Stopp der Wert verändert hat.



  • achso ok danke sehr.

    hab den fehler mittlerweile auch gefunden, hab an ner anderen stelle den speicher überschrieben 🙄

    muss mich noch bissl an c++ gewöhnen ^^

    new2cpp


Anmelden zum Antworten