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 回答