#include <stdio.h>
#include <stdlib.h>
void push( void** stack, int* top, void* data, size_t size )
{
unsigned i;
++*top;
for( i = 0; i < size; ++i )
( (char*)stack[*top] )[i] = ( (char*)data )[i];
}
int main()
{
void* stack[10];
int top = -1;
int data = 10;
char ch = 'a';
push( stack, &top, (void*)&data, sizeof( int ) );
push( stack, &top, (void*)&ch, sizeof( char ) );
printf( "%d ", *(int*)stack
[0] ); printf( "%c ", *(char*)stack
[1] );
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCnZvaWQgcHVzaCggdm9pZCoqIHN0YWNrLCBpbnQqIHRvcCwgdm9pZCogZGF0YSwgc2l6ZV90IHNpemUgKQp7Cgl1bnNpZ25lZCBpOwoJKysqdG9wOwoKCXN0YWNrWyp0b3BdID0gbWFsbG9jKCBzaXplICk7CgoJZm9yKCBpID0gMDsgaSA8IHNpemU7ICsraSApCgkJKCAoY2hhciopc3RhY2tbKnRvcF0gKVtpXSA9ICggKGNoYXIqKWRhdGEgKVtpXTsKCQp9CgppbnQgbWFpbigpCnsKCXZvaWQqIHN0YWNrWzEwXTsKCWludCB0b3AgPSAtMTsKCWludCBkYXRhID0gMTA7CgljaGFyIGNoID0gJ2EnOwoKCXB1c2goIHN0YWNrLCAmdG9wLCAodm9pZCopJmRhdGEsIHNpemVvZiggaW50ICkgKTsKCglwdXNoKCBzdGFjaywgJnRvcCwgKHZvaWQqKSZjaCwgc2l6ZW9mKCBjaGFyICkgKTsJCgoJcHJpbnRmKCAiJWQgIiwgKihpbnQqKXN0YWNrWzBdICk7CglwcmludGYoICIlYyAiLCAqKGNoYXIqKXN0YWNrWzFdICk7CgoJcmV0dXJuIDA7Cn0=