我一直在写一个程序来填充一副牌。我正在使用makefile来构建可执行文件,但是在执行时仍然会出现分段错误。请有人看看下面的代码,指出错误的来源吗?
谢谢!
Card.h
#ifndef CARD_H
#define CARD_H
#include <iostream>
class Card
{
public:
Card(char rankSet, char suitSet);
Card();
private:
char rank, suit;
};
#endifCard.cpp
#include "Card.h"
Card::Card()
{
rank = 'A';
suit = 'C';
}
Card::Card(char rankSet, char suitSet)
{
rank = rankSet;
suit = suitSet;
}Deck.h
#ifndef DECK_H
#define DECK_H
#include <iostream>
#include "Card.h"
class Deck
{
public:
Deck();
private:
Card *deckOfCards;
};
#endifDeck.cpp
#include "Deck.h"
Deck::Deck()
{
char ranks[13] = {'A','2','3','4','5','6','7','8','9','T','J','Q','K'};
char suits[4] = {'C','D','H','S'};
deckOfCards = new Card[52];
int k = 0;
for(int i = 0; i<13; i++)
{
for(int j=0; j<4; i++)
{
deckOfCards[k] = Card(ranks[i],suits[j]);
k++;
}
}
}Main.cpp
#include "Deck.h"
int main()
{
Deck deck1;
return 0;
}Makefile
#
CC = g++
CFLAGS = -g -Wall -lm
#
default: Main
# To create the executable file count we need the object files
Main: Main.o Card.o Deck.o
$(CC) $(CFLAGS) -o Main main.o Card.o Deck.o
# To create the object file
Main.o: main.cpp Deck.h Card.h
$(CC) $(CFLAGS) -c main.cpp
# To create the object file
Deck.o: Deck.cpp Deck.h Card.h
$(CC) $(CFLAGS) -c Deck.cpp
# To create the object file
Card.o: Card.cpp Card.h
$(CC) $(CFLAGS) -c Card.cpp
clean:
$(RM) Main *.o *~发布于 2017-03-30 13:38:39
在for循环中增加i而不是j
https://stackoverflow.com/questions/43119425
复制相似问题