[ create a new paste ] login | about

Link: http://codepad.org/O5ITfhND    [ raw code | output | fork ]

C++, pasted on Sep 27:
#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;
}


Output:
1
16383.000000	0.000000


Create a new paste based on this one


Comments: