#include<stdarg.h> #include<stdio.h> #include<malloc.h> #include<process.h> struct Array { unsigned int bytes; void * type; struct Array *next; }; class arr { private: Array *element; Array *index; Array *temp; unsigned int arr_size; public: arr(unsigned int,...); void enter_element(unsigned int,...); }; //constructor arr::arr(unsigned int t,...) { va_list ap; int arg; temp=index; va_start(ap,t); while((arg=va_arg(ap,int))!=0) { index->bytes=t; *(int *)index->type=arg; index->next=(Array *)0; index=index->next; } va_end(ap); index=temp; arg=1; while(index->next!=(Array *)0) { arg=arg*(*(int *)index->type); index=index->next; } index=temp; arr_size=(unsigned int)arg; temp=element; while((arg--)>0) { element->bytes=t; element->type=malloc(t*8); if(element->type==(void *)0) exit(0); switch(t) { case 2 : *(int*)element->type=0;break; case 8 : *(double*)element->type=0.00;break; } element->next=(Array *)0; element=element->next; } element=temp; } //method to enter a array void arr :: enter_element(unsigned int t1,...) { va_list ap; temp=element; va_start(ap,t1); while(element->next!=((Array *)0)) { switch(t1) { case 2 : *(int *)element->type=va_arg(ap,int);break; case 8 : *(double *)element->type=va_arg(ap,double);break; } element=element->next; } va_end(ap); element=temp; } int main() { arr arr1(2,2,3,0); }
arr
index->bytes=t;
index
Array
var
This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)