C#의 포인터와 안전하지 않은 새로운 기능. 나는 포인터를 통해 변수의 메모리 주소를 알아 내고, 여기 저기 조금 움직이고있다. 기본적으로 학습.메모리 주소에 쓰는 방법은 무엇입니까?
static unsafe void M()
{
var i = 1;
var p = &i; //gets memory location of variable i here
//how do I write to location p, say a value of 100?
}
특정 위치에 글을 쓰는 방법이 있는지 궁금합니다. 나는 동시에 읽고 쓸 수 있다면 무엇이 돌아가고 있는지 보는데 많은 도움이된다.
실용적인 목적이 아니라 단지 학습. 또는 C#으로 가능하지 않습니까?
당신의 대답과이 접근법의 차이점은 무엇인지 아십니까? 'Marshal.WriteInt32 (new IntPtr (p), 100)'? 둘 다 잘 작동합니다. – nawfal
@nawfal,'Marshal'에는 관리되지 않는 메모리로 작업하기위한 전체 호스트가 포함되어 있으며 MSDN을 확인하면 안전하지 않은 것으로 표시되지 않습니다. –