C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#でポインタを使ってデータ値を取得する方法


ポインタとは、別の変数のアドレス(メモリ上の場所)を値として格納する特殊な変数のことです。ポインタ変数が参照しているアドレスに格納されたデータを取得するには、ToString()メソッドを使用します。

コード例

以下に、ポインタからデータ値を取得する具体的なサンプルコードを示します。

using System;
namespace UnsafeCodeApplication {
    class Program {
        public static void Main() {
            unsafe {
                int var = 100;
                int* p = &var;

                Console.WriteLine("Data is: {0} " , var);
                Console.WriteLine("Data is: {0} " , p->ToString());
                Console.WriteLine("Address is: {0} " , (int)p);
            }
            Console.ReadKey();
        }
    }
}

出力結果

このコードを実行するには、コンパイル時にunsafeコマンドラインオプションを指定する必要があります。オプションを設定したうえで実行すると、次のような出力が表示されます。

Data is: 100
Data is: 100
Address is: 77678547

なお、「Address is」に表示されるアドレスの値(77678547)は、実行環境やメモリの割り当て状況によって毎回異なる点に注意してください。また、Visual Studioを使用している場合は、プロジェクトのプロパティから「ビルド」タブにある「アンセーフ コードの許可」を有効にしておく必要があります。unsafeブロック内では、通常の安全なコードでは許可されていない直接のメモリアクセスが可能になりますが、その分メモリ管理には十分な注意が必要です。

  1. ExcelでWebページのデータを自動取得する方法|手入力の手間をなくそう

    Excelは、思いつく限りの数学的・論理的な計算をこなせる、非常に強力なソフトウェアです。Excelの達人が作成する自動化スプレッドシートは、多くの企業が業務を円滑に進めるうえで欠かせないものとなっています。 ただし、唯一の悩みの種といえば、データ入力が面倒で時間のかかる作業になりがちなことです。特に、計算の元となる情報が頻繁に変わる場合は厄介です。変化する情報をその都度、手動で確認して入力し直す必要があるのでしょうか? 実は、Microsoftもこの課題を想定しており、ExcelにはWebサイトから直接情報を取得する機能が備わっています。つまり、特定の値をWeb上の表で管理しているサイトがあ

  2. Windows 10でWindows XPモードの仮想マシン(VM)からデータを取り出す方法

    Windows 7からWindows 8やWindows 10へアップグレードすると、Windows XPモード自体はマシンに残っているものの、Windows Virtual PCは利用できなくなります。これは、Windows Virtual PCがWindows 8以降ではサポートされていないためです。本記事では、Windows 10/8環境でWindows XPモードの仮想マシン(VM)からデータを取り出す方法を詳しく解説します。 Windows XPモードとは XPモードは、Service Pack 3適用済みの完全なライセンス版Windows XPを仮想ハードディスク(VHD)に格納し