Указатели, выделенные в C? Что это?

У меня есть следующий код.

char a[] = "abcde";
char *b = "fghij";
char *c = malloc(6);
char *d = c;
c = "klmno";

И упражнение гласит:

Нарисуйте рисунок структур данных a, b, c и d (с содержанием), где вы можете увидеть, что было выделено, и использовать стрелки, чтобы показать, как как устанавливаются указатели.

Мое решение:

      ____________
a -> |a|b|c|d|e|\0|
      ¨¨¨¨¨¨¨¨¨¨¨¨
      ____________
b -> |f|g|h|i|j|\0|
      ¨¨¨¨¨¨¨¨¨¨¨¨
      ____________
c -> |k|l|m|n|o|\0|
      ¨¨¨¨¨¨¨¨¨¨¨¨
      ___________
d -> | | | | | | |
      ¨¨¨¨¨¨¨¨¨¨¨

Однако мое решение не было принято и ответ был "выделена память для указателя на b, c, d, но не на a". Кто-нибудь может объяснить мне, что это значит?

8
задан Bill the Lizard 17 September 2012 в 13:29
поделиться