结构程序编译没有错误,但没有导致控制台窗口?

时间:2013-03-11 10:25:24

标签: c

嗨朋友们按照练习程序编译时出现零错误但输出没有显示在控制台窗口中...我觉得有些东西我不知道...请指导我...谢谢!

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;
 }

2 个答案:

答案 0 :(得分:0)

cardPtr->facecardPtr->suit未初始化。因此,未定义的行为。分配内存,并在打印前指定值。

修改

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

其中n是内存块可以容纳的字符数。在打印之前,你仍然需要在这个char数组中添加一些东西。

答案 1 :(得分:0)

您尚未向aCard分配任何内容。将值分配给aCard,然后将其分配给cardPtr

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

现在您可以看到要打印的值。