回答ありがとうございます。
mallocはポインタしか使えないのですね。
メモリ確保後、配列で扱おうと
int *bh;
bh=(int *)malloc(100);
int a=0,b=0,c=0;
bh[a][b][c]=0;
としたのですが、配列が定義されていないと出ました。
当然だろと思ったのですが、
以下のプログラムは動くので、よく分かりません。
教えていただけないでしょうか。
#include <stdio.h>
#include <stdlib.h>

int main()
{
int i;
int *heap;
heap = (int *)malloc(sizeof(int) * 10);
if (heap == NULL) exit(0);

for (i = 0;i < 10;i++) {
heap[i] = i;
}
printf("%d\n",heap[5]);

free(heap);

return 0;
}