Segmentation Fault (core dumped) C++

c++, segmentation-fault

Solution

You have a `std::vector` called `bigDeck` and in `DealQCard` you attempt to access its 0th element, despite the fact it has no elements. Did you mean to put some cards in `bigDeck`?

Problem

After researching I do believe I understand what the `"Segmentation fault"` error is. However, even after commenting out the code line by line, I can not seem to find where the fault is occurring in order to fix it. Is there something I am overlooking that is causing this error? Below is what shows up when I run the code: Ready to play (y/n)? y 3C AH 4C 3H 4H 2H 5H 2C 5C AC Here's your cards: 3C AH 4C 3H 4H Segmentation fault (core dumped) Pasted below is the code that I am referring to. The commented out parts were just me trying to find where the error was occurring: ``` #include <iostream> #include <vector> #include <algorithm> #include <sstream> #include <ctime> #include <cstdlib> #include <string> #include <cstring> #include <stdio.h> using namespace std; vector<string> bigDeck; vector<string> cardDeck; vector<string> playerHand; vector<string> computerhand; vector<string> shortvec; const int DEAL_CARDS = 5; void ResetDeck(); void Shuffle(); void DealACard(); void DealQCard(); void DealBCard(); string CStr(int); int letsee2; int main() { cout << "Ready to play (y/n)? "; char yn; cin >> yn; if (yn == 'n' || yn != 'y') return 0; ResetDeck(); srand(time(0)); Shuffle(); for (int f=0; f < 10; f++) { cout << cardDeck[f] << " "; } cout << "\n\nHere's your cards: "; for (int i=0; i < DEAL_CARDS; i++) { DealACard(); cout << playerHand[i] << " "; } cout<<"\n\nHere's the Computer's cards: "; for (int k=0; k < DEAL_CARDS; k++) { DealBCard(); cout << computerhand[k] << " "; } for (int u=0; u < DEAL_CARDS; u++) { DealQCard(); } cout<<shortvec.size()<<endl; cout<<endl<<endl; //do //{ for (int woh=0; woh < DEAL_CARDS; woh++) { if ((playerHand[woh][0]=='A') && (computerhand[woh][0]=='A')) { cout<<"War!"<<endl; } else if ((playerHand[woh][0]=='A') && (computerhand[woh][0]!='A')) { cout<<"Player wins"<<endl; /*playerHand.push_back(computerhand[woh]); computerhand.erase(computerhand.begin()+(woh-1));*/ } else if ((playerHand[woh][0]!='A') && (computerhand[woh][0]=='A')) { cout<<"Computer Wins"<<endl; /*computerhand.push_baci(playerHand[woh]); playerHand.erase(playerHand.begin()+(woh-1));*/ } else { if ((atoi(playerHand[woh].c_str())) > (atoi(computerhand[woh].c_str()))) { cout<<"Player wins!"<<endl; /*playerHand.push_back(computerhand[woh]); computerhand.erase(computerhand.begin()+(woh-1));*/ } else if ((atoi(playerHand[woh].c_str())) < (atoi(computerhand[woh].c_str()))) { cout<<"Computer wins!"<<endl; /*computerhand.push_back(playerHand[woh]); playerHand.erase(playerHand.begin()+(woh-1));*/ } else { cout<<"War!"<<endl; } } /*if (playerHand.size() > computerhand.size()) shortvec = computerhand; else shortvec = playerHand; cout<<endl<<endl; */ } /*for (int z=0; z < playerHand.size(); z++) { cout << playerHand[z] << " "; } cout<<"\n\nHere's the Computer's cards: "; for (int y=0; y < computerhand.size(); y++) { cout << computerhand[y] << " "; }*/ cout<<endl<<endl; //} //while(((playerHand.size())!=10) || (computerhand.size())!=10); return 0; } void Shuffle() { random_shuffle(cardDeck.begin(),cardDeck.end()); } void DealBCard() { computerhand.push_back(cardDeck[0]); cardDeck.erase(cardDeck.begin()); } void DealACard() { playerHand.push_back(cardDeck[0]); cardDeck.erase(cardDeck.begin()); } void DealQCard() { shortvec.push_back(bigDeck[0]); bigDeck.erase(bigDeck.begin()); } string CStr(int n) { stringstream s; s << n; return s.str(); } void ResetDeck() { cardDeck.clear(); playerHand.clear(); computerhand.clear(); for (int i=2; i<6; ++i) { cardDeck.push_back(CStr(i) + "H"); cardDeck.push_back(CStr(i) + "C"); } cardDeck.push_back("AH"); cardDeck.push_back("AC"); } ```

Original source