怎么将结构体的数据放进一个数组里面

如何将结构体的数据放进一个数组里面?
C/C++ code
#include<iostream>
using namespace std;
struct A{
    int a;
    char b;
};
void main()
{
    A *t;
    t=(A*)malloc(sizeof(A));
    t->a=2;
    t->b='a';
    void  buf;
    buf=(A*)malloc(sizeof(A));
    memcpy(buf,t,2);
    cout<<buf;
    
}

这是我写的代码,想将一个结构体的数据放进一个数组,然后再将数组内容打印出来
我期待的是输出2a
请问要怎么修改
我这样写报错了

------解决方案--------------------
#include<iostream>
#include<cstring>
using namespace std;
struct A{
public:
int a;
char b;

};
int main()
{
A *t;
t=(A*)malloc(sizeof(A));
t->a=2;
t->b='a';
void* buf;
buf=(A*)malloc(sizeof(A));
memcpy(buf,t,sizeof(*t));
cout<<((A*)buf)->a<<((A*)buf)->b<<endl;
return 0;
}
这里是把A指向的内容,按字节拷贝给buf,然后输出。
void * memcpy ( void * destination, const void * source, size_t num );
最后一个参数是指拷贝的字节数 参考http://www.cplusplus.com/reference/clibrary/cstring/memcpy/