34.5ポインタが無効です

2137 ワード

値を直接保存


ポインタはメモリアドレスを格納するために使用され、値を直接格納することはできません.
#include <stdio.h>

int main()
{
    int *numPtr = 0x100;    // 포인터에 0x100을 직접 저장

    printf("%d\n", *numPtr);    // 0x100은 잘못된 메모리 주소이므로 실행 에러

    return 0;
}

無効な値が保存されている場合


int *numPtr = 0x100;
0 x 100をポインタに直接格納すると、0 x 100はエラーのプライマリ周波数値であるため正常に動作しません.

この状態でnumptrを逆参照してメモリアドレスにアクセスしようとすると、エラーが発生します.(プログラムが誤ったメモリアドレスにアクセスしたときにOSがエラーになったため)

実際に存在するメモリアドレスを直接格納します。


実際に存在するメモリアドレスであれば、ポインタに直接保存できます.
通常、組み込みシステムまたはマイクロプロセッサが提供するメモリアドレスを使用すると、ポインタに直接格納されます.
int *numPtr = 0x00CCFC2C;    // 실제로 존재하는 메모리 주소라면 저장할 수 있음

ソース


https://dojang.io/mod/page/view.php?id=280