Puepue
Komplett-PC-Aufrüster(in)
Adressierten Speicher löschen C++
Hallo zusammen,
habe ein Problem in meinem C++-Projekt.
Und zwar stürzt das Programm hier ab:
sVorgang ist ein Struct:
TVerwaltung sVorgang = {0,true,false,0,0,0,0};
und vtext wird so erzeugt:
So und hier noch die dazugehörige Funktion cryptonetimepad die ich gebastelt habe:
Ich finde den Fehler im Moment nicht - ist bestimmt nur was ganz blödes.. hat da jemand ne Idee?
Hallo zusammen,
habe ein Problem in meinem C++-Projekt.
Und zwar stürzt das Programm hier ab:
Code:
if(sVorgang.vtext != 0)
{
cout << "Leere Verschluesselungstext-Cache... ";
delete []sVorgang.vtext;
cout << "... erfolgreich!" << endl; // Das hier wird nicht mehr ausgegeben
}
sVorgang ist ein Struct:
TVerwaltung sVorgang = {0,true,false,0,0,0,0};
Code:
struct TVerwaltung
{
int alg;
bool einlesen;
bool erzeugeKey;
char * ktext;
char * vtext;
char * key;
int ikey;
};
und vtext wird so erzeugt:
Code:
sVorgang.vtext = cryptonetimepad( sVorgang.ktext );
sVorgang.key = 0;
So und hier noch die dazugehörige Funktion cryptonetimepad die ich gebastelt habe:
Code:
char * cryptonetimepad ( char * unverschluesselt )
{
/* random Initialisierung */
srand ( time(NULL) );
char * longkey = new char[strlen(unverschluesselt)];
char * verschluesselt = new char[strlen(unverschluesselt) + 3]; //+3 für Signatur
/* Signatur */
verschluesselt[0] = 'o';
verschluesselt[1] = 't';
verschluesselt[2] = 'p';
int x = 3; //Zähler ab Signatur
cout << "Ihr Key lautet: " << endl;
for ( int i = 0; i<strlen(unverschluesselt); i++ )
{
int key = rand()%2;
if ( key == 1 )
{
key = 65 + rand()%(90-65+1); // Key mit Großbuchstaben
}
else
{
key = 97 + rand()%(122-97+1); // Kleinbuchstabe für Key
}
longkey[i] = (char)key;
verschluesselt[x] = unverschluesselt[i]^longkey[i]; // XOR
cout << longkey[i]; // Key ausgeben
//cout << verschluesselt[x] << " " << unverschluesselt[i] << " " << longkey[i] << endl;
x++;
}
verschluesselt[x] = NULL; // Tot dem Datenmüll!
cout << endl;
delete []longkey;
return verschluesselt;
}
Ich finde den Fehler im Moment nicht - ist bestimmt nur was ganz blödes.. hat da jemand ne Idee?
