Ich hab ein Problem und zwar, bekomme ich immer eine Access violation an einem bestimmten Punkt in meinem Code weiß aber nicht warum. Das ganze war ne Aufgabe einer Challenge, nämlich das Pokerkarten verteilen.
Der Fehler hat mit meiner Variable val3 zu tun, was für mich wenig Sinn ergibt, da die anderen davor auch auf den gleichen Weg gut durchlaufen.
Außerdem wird val3 auch immer auf den Wert "3435973836" gesetzt, was die Größe einer "unsigned int" entspricht.
Code:
#include "stdafx.h"
#include <iostream>
#include <string>
#include <stdlib.h>
using namespace std;
int gen1()
{
int v1 = rand() % 4 + 1;
return v1;
}
int gen2()
{
int v2 = rand() % 13 + 1;
return v2;
}
int generate(int plrs)
{
int arr1[16];
int arr2[16];
int val1 = gen1();
int val2 = gen2();
int arr3[16];
int arr4[16];
int val3 = gen1();
int val4 = gen2();
string j = "Jack of ";
string q = "Queen of ";
string k = "King of ";
string a = "Ace of ";
string two = "2 of ";
string three = "3 of ";
string four = "4 of ";
string five = "5 of ";
string six = "6 of ";
string seven = "7 of ";
string eight = "8 of ";
string nine = "9 of";
string ten = "10 of ";
string dm = "Diamonds ";
string sp = "Spades ";
string cl = "Clubs ";
string hr = "Hearts ";
string number[13] = { a, two, three, four, five, six, seven, eight, nine, ten, j, q, k };
string color[4] = { dm, sp, cl, hr };
for (int z = 0; z < plrs; ++z)
{
for (int y = NULL; y < plrs * 2; ++y)
{
arr1[y] = val1;
arr2[y] = val2;
arr3[y] = val3;
arr4[y] = val4;
val1 = gen1();
val2 = gen2();
val3 = gen1();
val4 = gen2();
}
for (int x = 0; x < 15; ++x)
{
if (arr1[x] == val1 && arr2[x] == val2)
{
val1 = gen1();
val2 = gen2();
x = 0;
}
if (arr3[x] == val3 && arr4[x] == val4)
{
val3 = gen1();
val4 = gen2();
x = 0;
}
}
cout << number[val2] << color[val1] << endl << number[val4] << color[val3] << endl;
}
return(0);
}
int main()
{
int plrcnt;
cout << "How many players are playing?(2-8)\n";
cin >> plrcnt;
generate(plrcnt);
}
Code:
First-chance exception at 0x0F387EA6 (msvcp120d.dll) in whateverdafuq.exe: 0xC0000005: Access violation reading location 0xCCCCCCCC. Unhandled exception at 0x0F387EA6 (msvcp120d.dll) in whateverdafuq.exe: 0xC0000005: Access violation reading location 0xCCCCCCCC.






)
