0

練習プログラムをフォローしている友人の皆さん、エラーなしでコンパイルされましたが、出力がコンソールウィンドウに表示されていません...何か足りないものがあると思います...ご案内ください...ありがとうございます!

struct card{

       char *face;
       char *suit;

       }aCard,deck[52], *cardPtr;

int main()
{
    struct card aCard;  //define one struct card Variable

   struct card *cardPtr; //define a pointer to  structure card

   cardPtr = &aCard;

   printf("%s\n %s\n",cardPtr->face, cardPtr->suit);

   system("PAUSE");
   return 0;
 }
4

2 に答える 2

0

cardPtr->faceおよびcardPtr->suitは初期化されていません。したがって、未定義の動作。印刷する前に、メモリを割り当て、値を割り当てます。

編集

cardPtr->face = malloc(n * sizeof(char));

ここで、nはメモリブロックが保持できる文字数です。印刷する前に、このchar配列に何かを入れる必要があります。

于 2013-03-11T10:29:13.863 に答える
0

に何も割り当てていませんaCard。に値をaCard割り当ててから、に割り当てますcardPtr

aCard.face="Hello";
aCard.suit="world";
cardPtr = &aCard;

これで、値が出力されるのを確認できます。

于 2013-03-11T10:31:11.080 に答える