Я распечатываю адреса и строки из следующих двух объявлений и инициализаций:
char * strPtr = (char *) "This is a string, made on the fly.";
char charArray [] = "Chars in a char array variable.";
При выводе следующий вывод происходит с совершенно разными адресами для переменных charArray и strPtr. Вопрос: «Почему?»
Печать:
printf( "%10s%40s%20p\n", "strPtr", strPtr, &(*strPtr));
printf( "%10s%40s%20p\n", "charArray", charArray, charArray);
Выход:
strPtr This is a string, made on the fly. 0x400880
charArray Chars in a char array variable. 0x7fff12d5ed30
Как видите, разные адреса: 0x400880 против 0x7fff12d5ed30
Остальная часть объявленной ранее переменной имеет адреса, подобные charArray.
Опять же, вопрос в том, почему адреса такие разные?
Спасибо за любую помощь.