C で文字列定数のアドレスを取得したいと思います。
char * const MYCONST = "StringString";
私の知る限り、const はメモリのテキスト/コード セグメントに「保存」されます。MYCONSt の最初の要素のアドレスを取得しようとすると:
printf("%p\n",&(MYCONST));
その結果、Text/Code セグメントではなくスタックにある 0x7fff15342e28 を取得します。Cで文字列定数のアドレスを取得するのを手伝ってくれる人はいますか?
//編集 今のところ正解が見つかりません:
char * const MYCONST1 = "StringString";
printf("Address of MYCONST1: %p\n",MYCONST1);
char * const MYCONST2 = "StringString";
printf("Address of MYCONST2: %p\n",(void*)MYCONST2);
これは出力です:
MYCONST1 のアドレス: 0x400b91
MYCONST2 のアドレス: 0x400b91
ただし、これらは異なる定数であるため、異なるアドレスを持つ必要があります。結果の長さが7であり、ロケール変数のように0x7fffa5dd398cではない場合、誰かが私を説明できますか?
ありがとう!