teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

修正

2020/11/20 01:54

投稿

退会済みユーザー
answer CHANGED
@@ -1,4 +1,4 @@
1
- C#でもポインタを扱う事は出来ますが、マネージドメモリ上のオブジェクトは常に同じアドレスに居るとは限らないので、明示的にアドレスを固定する(GCHandle.Allocやunsafeポインタを使用する)必要があります。固定している間はガベージコレクターの効率が低下するらしいので、unsafeを使用してもスコープをメソッド内程度に留め、不必要に固定し続けない方が良さそうです。
1
+ C#でもポインタを扱う事は出来ますが、マネージドメモリ上のオブジェクトは常に同じアドレスに居るとは限らないので、明示的にアドレスを固定する(GCHandle.Allocやfixedなunsafeポインタを使用する)必要があります。固定している間はガベージコレクターの効率が低下するらしいので、不必要に固定し続けない方が良さそうです。
2
2
 
3
3
  値型は代入してもコピーが作成されるだけなので、参照を保持するためには参照型のオブジェクトに格納する必要があります。
4
4
  [値型と参照型](https://ufcpp.net/study/csharp/oo_reference.html)

1

少し修正

2020/11/20 01:54

投稿

退会済みユーザー
answer CHANGED
@@ -1,4 +1,4 @@
1
- C#でもポインタを扱う事は出来ますが、マネージドメモリ上のオブジェクトは常に同じアドレスに居るとは限らないので、明示的にアドレスを固定する(GCHandle.Allocやunsafeポインタを使用する)必要があります。固定している間はガベージコレクターの効率が低下するらしいので、unsafeを使用してもメソッド内程度に留め、不必要に固定し続けない方が良さそうです。
1
+ C#でもポインタを扱う事は出来ますが、マネージドメモリ上のオブジェクトは常に同じアドレスに居るとは限らないので、明示的にアドレスを固定する(GCHandle.Allocやunsafeポインタを使用する)必要があります。固定している間はガベージコレクターの効率が低下するらしいので、unsafeを使用してもスコープをメソッド内程度に留め、不必要に固定し続けない方が良さそうです。
2
2
 
3
3
  値型は代入してもコピーが作成されるだけなので、参照を保持するためには参照型のオブジェクトに格納する必要があります。
4
4
  [値型と参照型](https://ufcpp.net/study/csharp/oo_reference.html)