Cを使いこなし、ポインタとその使い方を理解しようとしています。私はポインタがメモリ位置への参照であると理解しています。私は基本と簡単な例を得ると思いますが、const charポインタの値をcharにどのように割り当てることができますか?const char *の値を得るにはどうすればいいですか?
私は警告を受け取ります。
incompatible pointer to integer conversion initializing 'char' with an expression of type 'const char *' [-Wint-conversion]
タイプの違いは分かりますが、解決方法を教えてください。ここで
コードです:
#include <time.h>
#include <stdbool.h>
#define SUITS 4
#define FACES 13
#define CARDS 52
#define HAND_SIZE 5
struct Card {
char suit;
char face;
};
void dealHand(const char *wFace[], struct Card *wHand[]);
int main(void)
{
//initialize deck array
unsigned int deck[SUITS][FACES] = {0};
srand(time(NULL)); // seed random-number generator
//initialize face array
const char *face[FACES] =
{"Ace", "Deuce", "Three", "Four",
"Five", "Six", "Seven", "Eight",
"Nine", "Ten", "Jack", "Queen", "King"};
struct Card *hand[HAND_SIZE];
dealHand(face, hand); //deal the deck
}
//deal cards in deck
void dealHand(const char *wFace[], struct Card *wHand[])
{
unsigned int c = 0;
char f = wFace[2];
struct Card aCard;
aCard.face = f;
wHand[0] = &aCard;
}
私はライン上で警告を受ける:(定数*)を使用して、それをキャスティング
char f = wFace[2];
は解決策ではないようです。
_ "どのように私がcharへのconst char型のポインタの値を割り当てることができますか?" _疑問は、なぜ___、ある___ –
単純に値を取得するには?その場所。より良い方法があれば。それは何ですか?また何を調べなければなりませんか? – user2300867
テキスト名ではなく、プログラムの動作の中で(おそらく 'enum'を使って)カードの識別子を使って作業する方が簡単かもしれません。人間に出力するためにテキスト名を使用することができます。 –