请大家看看这个函数有啥有关问题,多谢

请大家看看这个函数有啥问题,谢谢
void   test()
{
 char   string[10],   str1[10];
 int   i;
 for(i=0;   i <10;   i++)
 {
  str1[i]   =   'a ';
 }
 strcpy(   string,   str1   );
}

------解决方案--------------------
strcpy(char *a,char *b)
b必须是一个指向一个有NULL结尾标志的字符串指针。
而且a的空间必须足以容纳b。
你使用
for(i=0; i <10; i++)
 {
  str1[i] = 'a ';
 }
为str1赋值,则str[9] = 'a '。导致在str1定义的空间内没有了字符串结束标记,致使strcpy()不知何时为str1的结束,会操纵不属于str1的内存,引起越界。