34.5ポインタが無効です
値を直接保存
ポインタはメモリアドレスを格納するために使用され、値を直接格納することはできません.
#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
Reference
この問題について(34.5ポインタが無効です), 我々は、より多くの情報をここで見つけました https://velog.io/@shuajjjjj/잘못된-포인터-사용テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol