cudaMemcpyToSymbol can cause program crush ?

I use following statement on my program:

constant float constData[256];
float data[256];
cudaMemcpyToSymbol(constData, data, sizeof(data));

When I run the program, the program runs well.
When I change the statements as following:

typederf struc
{
char a[100];
int a1, a2;
}aaa;

constant aaa constData[256];
aaa data[256];
cudaMemcpyToSymbol(&constData, &data, sizeof(aaa));

When I run the program, the program crushed.

can someone tell me that is why ?