Я просто смотрю на этот пример из Deitel:C: Как назначается память при использовании указателей?
#include <stdio.h>
struct card {
char *face;
char *suit;
};
int main(void)
{
struct card aCard;
struct card *cardPtr;
aCard.face = "Aces";
aCard.suit = "Spades";
cardPtr = &aCard;
printf("%s%s%s\n%s%s%s\n%s%s%s\n", aCard.face, " of ", aCard.suit,
cardPtr->face, " of ", cardPtr->suit,
(*cardPtr).face, " of ", (*cardPtr).suit
);
system("pause");
return 0;
}
Я вижу, что есть указатель на символ, но никогда не думал, что вы могли бы сохранить строки с помощью char *
...
Вопрос заключается в том: как обрабатывается память здесь, потому что я не видел ничего такого, как char word[50]
.
Обратите внимание, что в настоящее время плохой практикой назначать строковый литерал переменной типа char +. Вместо этого вы должны использовать переменную 'const char *', поскольку строковый литерал не может быть (и не должен) изменяться во время выполнения. –