質問です。

typedef struct
{
  double *base;
  …
}matrix;

matrix A;

このAに
double a[4][4]={
 {0.0,0.0,1.0,0.0},
 …
};

と定数で宣言した配列の先頭アドレスを
A.base = (double *)a;

と突っ込んでいるんですが、ここでプログラムが落ちてしまいます
(コンパイルエラーはないです)
ポインタ宣言したAに直接、配列の定数を突っ込みたいのですが、
それが分からなかったので、こんな方法をやってます。
( *(A.base+0+0) = 1.0; とか突っ込むのも考えたんですが)
元のプログラムがMS-DOSのTurboC++で書かれていて(ある本のプログラム)
それをWin+BC++5.02J上でやりたいんです。
何が間違いでしょうか。