C コンパイラ (www.cc65.org) で 8 ビット 6502 のプログラミングを学習しています。
NES FC には、8 ビット 6502 プロセッサと 2K RAM が搭載されています。ただし、次の C は (nes ファイルに) コンパイルされ、VirtualNES エミュレーターに正常にロードされます。
#include "conio.h"
#include "stdlib.h"
int dump[1000];
void main()
{
int *a;
a = (int*)malloc(19222999);
cputs("Hello, World!");
a[0] = 1;
for(;;); // loop forever, never ends
}
なぜこれでOKなのですか?明らかに、上記の C コードで 2K を超えるメモリを割り当てています。