#include <stdio.h>
#include <string.h>
#include <stdarg.h>

void initarray(int*d,int n,...)
{
	va_list v;
	va_start(v,n);
	for(int i=0;n--;) d[i++]=va_arg(v,int);
	va_end(v);
}

int main()
{
	int v[3];  /* Zielarray */
	typedef struct{int i[3];} I3; /* Hilfstyp für struct-Kopie */
	
	{ int x[3]={1,2,3};	*(I3*)v=*(I3*)x; }
	printf("%d%d%d\n",*v,v[1],v[2]);
	
	{ int x[3]={4,5,6};	memcpy(v,x,sizeof v); }
	printf("%d%d%d\n",*v,v[1],v[2]);

	*(I3*)v=*(I3*)(int[3]){7,8,9};
	printf("%d%d%d\n",*v,v[1],v[2]);
	
	memcpy(v,(int[3]){4,4,4},sizeof v);
	printf("%d%d%d\n",*v,v[1],v[2]);
	
	initarray(v,3,9,9,9);
	printf("%d%d%d\n",*v,v[1],v[2]);

	return 0;
}
