wert vergleichen und in const char* speichern
-
Das, was Du da machst, kann so nicht gehen:
const char* compcards[20]; //ein Array aus 20 char*, wobei jeder ins Nirvana zeigt const char* primeCardsRed[20]; //nochmal while(i < 6) { if(compcards[i] == "1") { //Versuch einer Zuweisung an etwas, dass ins Nichts zeigt primeCardsRed[ia] = "11"; //noch mal ia++; } else if(compcards[i] == "5") { primeCardsRed[ib] = "21"; //uns noch mal ia++; } i++ }Nimm lieber std::string:
#include <string> std::string compcards[20]; std::string primeCardsRed[20]; while(i < 6) { if(compcards[i] == "1") { primeCardsRed[ia] = "11"; ia++; } else if(compcards[i] == "5") { primeCardsRed[ib] = "21"; ia++; } i++ }
-
string compcards[20]; string primeCardsRed[20]; if(compcards[i] == "1") { primeCardsRed[ia] = "11"; ia++; }ok jetzt sind das strings, aber in den neuen string wird nichts reingeschrieben!
-
Blake_MaX schrieb:
string compcards[20]; string primeCardsRed[20]; if(compcards[i] == "1") { primeCardsRed[ia] = "11"; ia++; }ok jetzt sind das strings, aber in den neuen string wird nichts reingeschrieben!
Dann geh halt mal mit dem Debugger durch. Und schau, was da falsch gemacht wird..

-
"Eine Zugriffsverletzung (Segmentation Fault) trat in ihrem Programm auf! ??
-
Blake_MaX schrieb:
"Eine Zugriffsverletzung (Segmentation Fault) trat in ihrem Programm auf! ??
Meine Güte. Dann zeig doch mal den genauen Code und die Stelle, wo das auftrit..

-
ne stelle weiß ich nicht, das wird mir angezeigt wenn ich die fehlersuche bei dev-c++ einschalte. passiert aber auch nu wenn ich diesen code:
int a; int primeCardsRedSortA, primeCardsRedSortB, primeCardsRedSortC, primeCardsRedSortD; int primeCardsYelSortA, primeCardsYelSortB, primeCardsYelSortC, primeCardsYelSortD; int primeCardsGreSortA, primeCardsGreSortB, primeCardsGreSortC, primeCardsGreSortD; int primeCardsBluSortA, primeCardsBluSortB, primeCardsBluSortC, primeCardsBluSortD; string compcards[20]; string usercards[20]; string primeCardsRed[20]; string primeCardsYel[20]; string primeCardsGre[20]; string primeCardsBlu[20]; void Comp_KI() { int i = 1; int ia = 1; int ib = 1; int ic = 1; int id = 1; while(i < 6) { if(compcards[i] == "1") { primeCardsRed[ia] = "11"; ia++; } else if(compcards[i] == "5") { primeCardsRed[ia] = "21"; ia++; } else if(compcards[i] == "9") { primeCardsRed[ia] = "31"; ia++; } else if(compcards[i] == "1" && compcards[i++] == "3") { primeCardsRed[ia] = "41"; ia++; } else if(compcards[i] == "2") { primeCardsYel[ib] = "12"; ib++; } else if(compcards[i] == "6") { primeCardsYel[ib] = "22"; ib++; } else if(compcards[i] == "10") { primeCardsYel[ib] = "32"; ib++; } else if(compcards[i] == "14") { primeCardsYel[ib] = "42"; ib++; } else if(compcards[i] == "3") { primeCardsGre[ic] = "13"; ic++; } else if(compcards[i] == "7") { primeCardsGre[ic] = "23"; ic++; } else if(compcards[i] == "11") { primeCardsGre[ic] = "33"; ic++; } else if(compcards[i] == "15") { primeCardsGre[ic] = "43"; ic++; } else if(compcards[i] == "4") { primeCardsBlu[id] = "14"; id++; } else if(compcards[i] == "8") { primeCardsBlu[id] = "24"; id++; } else if(compcards[i] == "12") { primeCardsBlu[id] = "34"; id++; } else if(compcards[i] == "16") { primeCardsBlu[id] = "44"; id++; } i++; } for(a = 1; a = 20; a + 2) { if(primeCardsRed[a] == "1") { primeCardsRedSortA++; } else if(primeCardsRed[a] == "2") { primeCardsRedSortB++; } else if(primeCardsRed[a] == "3") { primeCardsRedSortC++; } else if(primeCardsRed[a] == "4") { primeCardsRedSortD++; } } for(a = 1; a = 20; a + 2) { if(primeCardsYel[a] == "1") { primeCardsYelSortA++; } else if(primeCardsYel[a] == "2") { primeCardsYelSortB++; } else if(primeCardsYel[a] == "3") { primeCardsYelSortC++; } else if(primeCardsYel[a] == "4") { primeCardsYelSortD++; } } for(a = 1; a = 20; a + 2) { if(primeCardsBlu[a] == "1") { primeCardsBluSortA++; } else if(primeCardsBlu[a] == "2") { primeCardsBluSortB++; } else if(primeCardsBlu[a] == "3") { primeCardsBluSortC++; } else if(primeCardsBlu[a] == "4") { primeCardsBluSortD++; } } for(a = 1; a = 20; a + 2) { if(primeCardsGre[a] == "1") { primeCardsGreSortA++; } else if(primeCardsGre[a] == "2") { primeCardsGreSortB++; } else if(primeCardsGre[a] == "3") { primeCardsGreSortC++; } else if(primeCardsGre[a] == "4") { primeCardsGreSortD++; } }einfüge.
mfg
-

Das les ich mir jetzt nicht durch,aber seg fault gibts, wenn du ausserhalb des gültigen Speicherbereichs einen Zugriff hast. (bei dir wahrscheinlich ein Zugriff ausserhalb der Arraygrenzen..)
Ehm.. Was willst du mit dem hier genau bezwecken?!
for(a = 1; a = 20; a + 2) {Das gibt nämlich auf der nächsten Zeile eine Zugriffsverletzung..
Du willst eher das hier:for(a = 1; a < 19; a += 2) {
-
ok das was ich wollte funktioniert jetzt, also bei einem bestimmten wert wird etwas bestimmtes gespeichert. aber das hier:
for(a = 1; a < 20; a += 2) { if(primeCardsRed[a] == "1") { primeCardsRedSortA++; } else if(primeCardsRed[a] == "2") { primeCardsRedSortB++; } else if(primeCardsRed[a] == "3") { primeCardsRedSortC++; } else if(primeCardsRed[a] == "4") { primeCardsRedSortD++; } } for(a = 1; a < 20; a += 2) { if(primeCardsYel[a] == "1") { primeCardsYelSortA++; } else if(primeCardsYel[a] == "2") { primeCardsYelSortB++; } else if(primeCardsYel[a] == "3") { primeCardsYelSortC++; } else if(primeCardsYel[a] == "4") { primeCardsYelSortD++; } } for(a = 1; a < 20; a += 2) { if(primeCardsBlu[a] == "1") { primeCardsBluSortA++; } else if(primeCardsBlu[a] == "2") { primeCardsBluSortB++; } else if(primeCardsBlu[a] == "3") { primeCardsBluSortC++; } else if(primeCardsBlu[a] == "4") { primeCardsBluSortD++; } } for(a = 1; a < 20; a += 2) { if(primeCardsGre[a] == "1") { primeCardsGreSortA++; } else if(primeCardsGre[a] == "2") { primeCardsGreSortB++; } else if(primeCardsGre[a] == "3") { primeCardsGreSortC++; } else if(primeCardsGre[a] == "4") { primeCardsGreSortD++; } }geht nicht!
-
Was geht da nicht?
Ist es so schwer einen genauen Beschreib zu liefern?!
-
ja ok kannst du ja nicht wissen. also ich möchte eben eigentlich das gleiche wie oben, das bei einem bestimmten wert den wir ja grade eben in den string geschrieben haben, int++ passiert, wobei diese ziffern, die im string kommen nur an jeder 2. stelle auftauchen.
genug?