Привет, ребята, я пытаюсь распечатать адреса строковых литералов и начало и конец аргументов командной строки.Адрес строковых литералов и аргументов командной строки
int main(int argc, char *argv[]) {
printf("Address of argc: %p\n", (void*)&argc); //Is this how u find the address of argc?
//How to find out the start and end of command line arguments?
printf("Start of argv: %p\n", (void*)argv); //Like this? I am not sure...
char* strLiteral = "Hello world";
//how to find the address of "Hello world"? (Address of string literal)
}
Я сделал мое исследование и Ive слышал ответы, как принимать адрес строкового литерала не допускаются ... Правда ли это? Что они подразумевают под этим? Строковые литералы не имеют адреса? Пожалуйста, покажите мне, как получить начальный и конечный адреса аргументов командной строки. Спасибо, что нашли время.
«Я слышал, что ответы, такие как обращение к строковому литералу, не допускаются» - * где * вы слышали что? ** Написание ** в указанные адреса не допускается. Используя эти адреса в режиме «только для чтения», в противном случае было бы невозможно отправить их почти любой функции, ожидающей «const char *» (например, 'printf', загружаемый с помощью спецификатора'% s', например). Они были бы бесполезны, если бы вы не могли использовать их адреса. – WhozCraig
отсюда http://stackoverflow.com/a/12601183/859385 – user859385
Вы связано с пользователем6146524? См. Http://stackoverflow.com/questions/36368780/are-we-able-to-print-out-the-address-for-string-literal –