どういう意味ですか?それはどういう意味ですか?変数のアドレスをcharにキャストします。どうして?
int main(int argc, char *argv[]) {
int size = 2048;
char *stack;
stack = (char *) &size; // cast memory address of a variable to char
}
私は変数のメモリアドレスをキャストするとどうなるでしょうか。
どういう意味ですか?それはどういう意味ですか?変数のアドレスをcharにキャストします。どうして?
int main(int argc, char *argv[]) {
int size = 2048;
char *stack;
stack = (char *) &size; // cast memory address of a variable to char
}
私は変数のメモリアドレスをキャストするとどうなるでしょうか。
int size = 2048;
char *stack;
stack = (char *) &size; // cast memory address of a variable to char
size
4バイトのメモリブロック(典型的)を占めるint
変数です。&size
は、そのメモリブロックのアドレスです。char *stack = (char *)&size
を意味します。つまり、stack
は、その4バイトメモリブロックの先頭を指すcharへのポインタです。基本的*stack
は4バイトの整数変数の最初のバイトであり、正確な値は、プラットフォームに依存し
は良いていない誰かによって書かれたコードであると思われる(マシン・エンディアンに依存)デバッガ。関数のスタックフレームを見ることは、ボグの標準的な機能です。本当の意図を潜んで、よく、誰が知っている。私たちではなく、彼に尋ねなさい。 –
@Oka Prinarjaya実際のコードとキャスティングが使用されているコンテキストを表示していないため、意味がありません。 –