求助一个结构体指针问题,代码只有五行
#include #include
#include
//#pragma pack(1)
typedef struct InterTemp
{
char c[20];
unsigned int a;
unsigned char b;
}st_temp,*st_ttemp;
typedef struct ST_aTemp
{
char c[20];
unsigned int a;
ttemp atemp;
}st_natemp,*st_ptr_atemp;
int main()
{
st_ttemp nptr;
st_ptr_atemp st_ptr_a;
st_natemp st_natemp;
char buff[20]="hello world!!";
char t_buff[20] = "above the well";
// temp * atemp = (temp*)malloc(sizeof(1024));
strcpy(st_natemp.c,buff);
strcpy(st_natemp.atemp->c,t_buff);
以下省略一万行
return 0;
}
问题: 如何给一个指向结构体数组的指针赋值,我用strcpy(st_natemp.atemp->c,t_buff); 编译时不报错,调试执行时会提示内存溢出,还有如果我把两个结构体中的char c[20]都改成 unsigned char c[20] ,同时 吧 main 函数中的 char c[20] 也改成 unsigned char c[20] 编译时就会报错 ,提示 cannot convert
'unsigned char [20]' to 'char * ' 不理解 我都改成 unsigned char 了 为何还有 char * ,希望各位大大 帮忙找出原因,能帮我改下更好