Hey çocuklar dize değişmezlerinin adreslerini ve komut satırı argümanlarının başlangıç ve bitişini yazdırmaya çalışıyorum.Dize değişmezleri ve komut argüman argümanlarının adresi
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)
}
benim araştırma ve değişmez bir dize adresini almak gibi ive duydum cevaplar izin verilmez mi ... Bu doğru mu? Bununla ne demek istiyorlar? Dize değişmezlerinin bir adresi yok mu? Lütfen bana komut satırı argümanlarının başlangıç ve bitiş adreslerini nasıl alacağımı gösterin. Zaman ayırdığınız için teşekkür ederiz.
"Bir dizenin adresinin alınması gibi yanıtların duyulmasına izin verilmiyor" - * nerede duydunuz? o? ** Söz konusu adreslere ** yazılması yasaktır. Bu adresleri salt okunur şekilde kullanmak, aksi takdirde onları bir “const char *” (örneğin, 's% s' belirteci ile hazırlanmış printf' gibi) bekleyen herhangi bir işleve göndermek mümkün olmaz. Adreslerini kullanamazsan değersiz olurlar. – WhozCraig
buradan http://stackoverflow.com/a/12601183/859385 – user859385
Kullanıcı6146524 ile ilgili misiniz? Bakınız: http://stackoverflow.com/questions/36368780/are-we-able-to-print-out-the-address-for-string-literal –