pajofego
2008-03-10, 20:28:54
Hallo zusammen,
um die Arraygröße zu bestimmen ohne diesen separat mitzugeben benutze ich folgenden Hilfstemplate.
template <typename T, size_t N> size_t countof( T (&array)[N] )
{
return N;
};
So jetzt möchte ich ein Array durch die Funktion SetLength auf eine neue Größe erweitern. Die geht soweit ganz gut mit folgendem Code.
void SetLength(T *&Array, int NewSize)
{
// int dim = countof(Array);
int dim = 1;
T temp[NewSize];
for(int i=0; i<dim; i++)
temp[i] = Array[i];
delete[] Array;
Array = temp;
};
Der Aufruf erfolgt über:
double *test = new double[1];
SetLength(test,2);
Jetzt würde ich ganz gerne in SetLength die Dimension des übergebenen Arrays über countof bestimmen. Wenn ich die Zeile auskommentiere mekkert der Compiler und ich bin mit meinem Zeigerwissen am Ende :frown: Könntet ihr mit da bitte weiterhelfen? Geht das in der Form überhaupt, d.h. die Bestimmung der Arraygröße ohne diesen seperat mitzugeben?
Danke und viele Grüße
pajofego
P.S.: error: no matching function for call to `countof(double*&)'
um die Arraygröße zu bestimmen ohne diesen separat mitzugeben benutze ich folgenden Hilfstemplate.
template <typename T, size_t N> size_t countof( T (&array)[N] )
{
return N;
};
So jetzt möchte ich ein Array durch die Funktion SetLength auf eine neue Größe erweitern. Die geht soweit ganz gut mit folgendem Code.
void SetLength(T *&Array, int NewSize)
{
// int dim = countof(Array);
int dim = 1;
T temp[NewSize];
for(int i=0; i<dim; i++)
temp[i] = Array[i];
delete[] Array;
Array = temp;
};
Der Aufruf erfolgt über:
double *test = new double[1];
SetLength(test,2);
Jetzt würde ich ganz gerne in SetLength die Dimension des übergebenen Arrays über countof bestimmen. Wenn ich die Zeile auskommentiere mekkert der Compiler und ich bin mit meinem Zeigerwissen am Ende :frown: Könntet ihr mit da bitte weiterhelfen? Geht das in der Form überhaupt, d.h. die Bestimmung der Arraygröße ohne diesen seperat mitzugeben?
Danke und viele Grüße
pajofego
P.S.: error: no matching function for call to `countof(double*&)'