Я строю основную карточную игру, и для этого я должен создать колоду карт (хотя не обычную колоду карт) и перемешать ее. Это работало довольно хорошо на Visual Studio (Windows 10), но как только я переключился на Xcode (Mac OS X 10.11.16), я не могу получить те же результаты.
Вот мой main.c, ссылающийся на мой .h файл:
#include "Card.h"
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(void){
Card* lst = NULL;
if(CRD_createDeck(lst) != CRD_retCondOK)
printf("Something is wrong\n");
CRD_showDeck(b);
if(b == NULL)
printf("Empty\n");
return 0;
}
Файл My Card.h определяет карту * b:
static Card* b;
И мой файл Card.c:
#include "Card.h"
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <time.h>
CRD_tpRetCond CRD_createDeck(Card* lst){
int numCards, numSuits, CardEnum = 1;
char vetCardName[10] = {'4', '5', '6', '7', 'Q', 'J', 'K', 'A', '2', '3'};
char vetCardSuit[4][8] = {"Ouros", "Espadas", "Copas", "Paus"};
/*
lst = CRD_createList();
if(lst != NULL)
return CRD_retCondCreateError;*/
CardInfo* generico;
for(numSuits = 4; numSuits >= 1; numSuits--){
for(numCards=10;numCards >= 1; numCards--) {
generico = CRD_createCard(vetCardName[numCards-1],numCards,vetCardSuit[numNaipes-1],numSuits);
lst = CRD_insertCard(lst,generico,CardEnum);
CardEnum++;
}
}
b = lst;
CRD_showDeck(b);
return BAR_CondRetOK;
}
Я прошу прощения, если есть какие-либо несоответствия с именами переменных, я быстро перевел с португальского на английский, чтобы дать вам лучшую идею. Когда я вызываю функцию CRD_showDeck (b), она правильно показывает все карты в колоде. Тем не менее, моя основная функция считает b пустым. Почему это происходит?