-1

ポインターを介して 3 次元配列にアクセスするにはどうすればよいですか? 現時点では、同じ結果を得ようとしているこのコードがあります。OpenCL で配列の値を使用するには、ポインターを介してアクセスする必要があります。

for (l = 0; l < NumberOfLayers - 1; l++) {
  for (i = 0; i < NeuronsPerLayer[l]; i++) {
    for (j = 0; j < NeuronsPerLayer[l + 1] - bias[l + 1]; j++) {
      cout<<Synweights[l][i][j]<<endl;  
      cout<<*(*Synweights[0]+l*NumberOfLayers + i * NeuronsPerLayer[l] + j)<<endl;
    }
  }
}

Synweights次のように宣言されています。

double ***Synweights
Synweights = (double ** *)malloc((NumberOfLayers - 1) * sizeof(double **));
for (l = 0; l < NumberOfLayers - 1; l++) {
    Synweights[l] = (double **)malloc(NeuronsPerLayer[l] * sizeof(double *));
    for (i = 0; i < NeuronsPerLayer[l]; i++) {
        Synweights[l][i] = (double *)malloc((NeuronsPerLayer[l + 1] - bias[l + 1]) * sizeof(double));
    }
}
4

2 に答える 2

0

3 次元配列は、次の方法でアクセスできます。

T* myArray = new T[3][4][5];
T* aParticularT = myArray[1][2][2];
T* anArrayOfTs = myArray[1][2];
T* aTwoDimensionalArrayOfTs = myArray[1];
T* aThreeDimensionalArrayOfTs = myArray;
aTypeName aMemberOfT = aParticularT->memberName;
于 2013-07-02T08:31:40.980 に答える