私は次のように2つの配列を持っています-
int **data;
int ***count;
いくつかの分析を実行した後、私は次の割り当てを行いたいです-
count[i][j][k] = data[i][j];
しかし、私はいくつかのポインタ割り当ての問題に関連していると思うセグメンテーション違反を繰り返し発生します-誰かが私がこの割り当てを行う方法を提案できますか?
--data [i] [j]=0/1/2の一般的な値。
ZALLOCの定義:
#define ZALLOC(item,n,type) if ((item = (type *)calloc((n),sizeof(type))) == NULL) fatalx("Unable to allocate %d unit(s) for item\n",n)
// memory assignment
int **data;
int nrow, ncol;
ZALLOC(data, ncol, int *);
for (index = 0; index < ncol; index++)
{
ZALLOC(data[index], nrow, int);
}
int g=0, index1=0, index2=2;
data[index1][index2] = g;
int ***count;
int dim1 = 100, dim2 = 1, dim3=2;
ZALLOC(count, dim1, int **);
for (i = 0; i < dim1; i++)
{
ZALLOC(count[i], dim2, int *);
for (j = 0; j < dim2; j++)
{
ZALLOC(count[i][j], dim3, int);
}
}
// Initialize
for (i = 0; i < dim1; i++)
{
for (j = 0; j < dim2; j++)
{
for (k = 0; k < dim3; k++)
{
count[i][j][k] = 0;
}
}
}
// Assignment
count[0][1][2] = data[1][2];