初歩的な質問だと思いますがご教授ください。
charにstring型のアドレスを代入するにはどうすればよいのでしょうか。
例えば、string型の変数strに"Hello"という文字列を格納します。
このstrのアドレスをcharの変数p_strに格納したいです。
C#
1 private void button1_Click(object sender, EventArgs e) 2 { 3 string str = "Hello"; 4 fixed(char* p_str = str) 5 { 6 textBox1.Text = Convert.ToString(*p_str); 7 } 8 }
アドレスのときは変数の前に&を付けると思いますが、「マネージ型('string')のアドレスの取得、サイズの取得、またはそのマネージ型へのポインターの宣言が実行できません」と出てきてfixedの構文??を使用しています。上記で実行すると「H」だけが返って来ます。
「Hello」が返って来るにはどのようにすればよいのでしょうか?
また、int型で試してみると疑問点が見つかったのでこちらもお願いいたします。
C#
1 private void button1_Click(object sender, EventArgs e) 2 { 3 int a = 65535; 4 char* p = (char*)&a; 5 6 textBox1.Text = Convert.ToInt32(*p).ToString(); 7 }
こちらはint aに65535という値を格納しています。この数値以下ならtextBoxに65535と値が入りますが、+1の65536をaに格納すると0が返ってきます。+2の65537をaに格納すると1が返って来ます。
原因はなんでしょうか。
よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/11/02 04:25
2017/11/02 04:54
退会済みユーザー
2017/11/02 08:24