[1] 授業単元:コンピューター工学I
[2] 問題文(含コード&リンク):

次のソースコードをANSI規格のcのコードに直せ。
また、なぜそのようにしたか理由を書け。

unsigned char *a;
a = new unsigned char[100];

[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ(バージョン):gcc/g++
 [3.3] 言語:c/c++
[4] 期限:明日の朝9時30分
[5] その他の制限:なし

a = (unsigned char*)malloc(sizeof(100));
だと思って試しに
int i;
for(i = 0;i<100;i++){
unsigned char *p = a;
*p = i
p++;
}
と要素を代入しようと思ったら途中でcoredumpしました。
多分根本的にnewとmallocの違いを理解していないだけかもしれませんが、
どうかよろしくお願いします。