嗨朋友们按照练习程序编译时出现零错误但输出没有显示在控制台窗口中...我觉得有些东西我不知道...请指导我...谢谢!
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;
}
答案 0 :(得分:0)
cardPtr->face
和cardPtr->suit
未初始化。因此,未定义的行为。分配内存,并在打印前指定值。
修改强>
cardPtr->face = malloc(n * sizeof(char));
其中n是内存块可以容纳的字符数。在打印之前,你仍然需要在这个char数组中添加一些东西。
答案 1 :(得分:0)
您尚未向aCard
分配任何内容。将值分配给aCard
,然后将其分配给cardPtr
。
aCard.face="Hello";
aCard.suit="world";
cardPtr = &aCard;
现在您可以看到要打印的值。