2011-12-26 4 views
2

J'ai une classe de modèle en C++ qui ressemble à ceci:Comment renvoyer un pointeur vers un tableau multidimensionnel?

template <typename T, int xMax, int yMax, int zMax> 
class Volume { 
public: 
    T*[64][64] getDataPointer() {return data;} //compiler doesn't like this line 
private: 
    T data[xMax][yMax][zMax]; 
}; 

typedef Volume<unsigned char, 64, 64, 64> Chunk; 

Le compilateur n'aime pas le retour que j'ai pour getDataPointer(). Je veux retourner le même type je puis utiliser pour passer à cette fonction:

void perlin2D(unsigned char (*chunk)[64][64]) 

Quelqu'un peut-il me montrer comment faire?

+0

Vous devriez probablement utiliser 'xMax',' yMax' et 'zMax' au lieu du' 64' codé en dur dans le type de retour. En outre, C n'a pas de modèles, j'ai donc supprimé la balise C. –

Répondre

8

Modifier la signature à:

T (*getDataPointer())[64][64] {return data;} 
-1

T *** getDataPointer() {données de retour;} vous avez besoin peut-être quelque chose comme ça?

Questions connexes