Was zum Knobeln!!!!
-
Warum geht das nicht?
char temp[] = ""; char F[] = "abcd"; char G[] = "defg"; for (int i=0; (i < sizeof(F)) && (i < sizeof(G)); ++i) temp[i]=F[i]^G[i]; cout << "temp = F XOR G" << endl; cout << "F=" << F << endl << "G=" << G << endl << "temp=" << temp << endl; char temp2[] = ""; for (i=0; (i < sizeof(F)) && (i < sizeof(temp)); ++i) temp2[i]=F[i]^temp[i]; cout << "new = F XOR temp" << endl; cout << "G=" << G << endl << "F=" << F << endl << "new=" << temp2 << endl;
-
wieso knobeln? 'xor' wieder rückgängig machen ist doch nix besonderes. oder hab' ich was übersehen?
-
Tippe mal ganz stark, dass der Fehler hier liegt:
temp2[i]=F[i]^temp[i];
du beschreibst einen konstanten String!
-
Und wie ist die Lösung?
-
Keksscher schrieb:
Und wie ist die Lösung?
welche lösung?
ich vermute du bekommst zur laufzeit eine access violation.
möchtest du das verhindern, musst du den fehler beheben...aber das war nicht frage.
-
char temp2[];
-
Das geht auch nicht :
error C2133: 'temp2' : Unbekannte Groesse
-
Das abschließende (eigentlich einzige) '\0' wird in temp und temp2 beschrieben sodass cout damit nicht mehr klar kommt?
-
Keksscherz schrieb:
Das geht auch nicht :
error C2133: 'temp2' : Unbekannte Groesse
ja natürlich geht das nicht. eine größe solltest du schon angeben:
//entweder so: #define SIZE 50 char temp2[SIZE]; //oder so: const int SIZE 50; char temp2[SIZE]; //oder so: char temp2[50];
-
des rätsels lösung schrieb:
du beschreibst einen konstanten String!
Der Fehler liegt schon da, es wird aber kein konstanter String beschrieben. Es findet eine Indexüberschreitung statt, da temp nur ein Element ('\0') enthält. Einen konstanten String hättest du, wenn temp als char* deklariert wäre.