質問

私は以下の通りであるラインを越えてきた。

           char *ch=(char*)3000

私は、この行の意味を知りたい.....

正しい解決策はありません

他のヒント

それはページングを組み込み、システム上のあなたでない限りしている作業、ポインタ、CH、一般的に絶対メモリアドレス3000非常に悪い考えを割り当てられているように見え、あなたが知っているの正確のものです3000メモリ位置に

たぶん、コードの残りの部分を見ることは、関連するだろう...

そのポインタは、(Intelプロセッサ上で)存在するセグメントのに対してであってもよいです。この場合、3000は、単に私たちはラインを持っていないプログラムで先に定義され、そのセグメントへのインデックスである可能性があります。

これは、システム・アーキテクチャ、環境、OS、コンパイラ、コードの残りの部分(およびプログラマ...)に依存します。

それは明らかではないか。

数値「3000」すなわちchは、メモリアドレス3000(10進数)に初期化され、チャーポインタにキャストされます。

私の知る限り、3000は特別なアドレス/値ではありません、そしてほとんどの場合、それがセグメンテーションフォールトやごみ値につながるアクセスします。

あなたが表示されている場合は、コードで、それは間違って代わりに(void *型)を使用していることができることを、あなたはキーと値のペアを持つマップの場合には、結果はその場合の整数にキャストすることができると言います。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top