blob: 3914746d71e5dbbc9d96f8678bfaa47c66093aaf (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
// { dg-do run }
// Produces ICE 980519.
// Test case from Dirk Engelmann <Dirk.Engelmann@IWR.Uni-Heidelberg.De>
namespace vector {
// allocate memory for vector
template <class T>
inline T* alloc(const int aWidth)
{
// allocate memory
return new T[aWidth];
}
}
namespace matrix {
// allocate memory for matrix
template <class T>
T** alloc(const int aWidth,const int aHeight)
{
// allocate memory
T **mat = vector::alloc<T*>(aHeight);
T *data = vector::alloc<T> (aWidth*aHeight);
// set pointer
for (int i=0; i<aHeight; i++)
mat[i] = &data[aWidth*i];
// ok
return mat;
}
}
int main(void)
{
// sample
double **m=matrix::alloc<double>(10,20);
}
|