#include <cstdio>
#include <cstdarg>
const int N1=128;
const int N2=128;
double **new_memory(int N1,int N2)
{
int i;
double **p=new double*[N1];
for(i=0;i<N1;++i){
p[i]=new double[N2];
}
return p;
}
void delete_memory(double **c,int N1)
{
int i;
for(i=0;i<N1;++i){
delete [] c[i];
}
delete [] c;
}
void setArray(int dummy,...)
{
va_list pointer;
double ***p;
va_start(pointer,dummy);
p=va_arg(pointer,double***);
*p=new_memory(N1,N2);
va_end(pointer);
}
void freeArray(int dummy,...)
{
va_list pointer;
va_start(pointer,dummy);
delete_memory(va_arg(pointer,double**),N1);
va_end(pointer);
}
int main(void)
{
double **p;
// double **q;
setArray(1,&p/*,&q*/);
for(int i=0;i<N1;++i){
for(int j=0;j<N2;++j){
p[i][j]=i*N2+j;
// q[i][j]=i*j;
}
}
printf("%f\t%f\n",p[N1-1][N2-1],p[0][0]);
freeArray(1,p/*q*/);
return 0;
}