我试图用for打印数组的名称,但输出给我随机的字母和符号,我不能正确地转换它来打印结构体的名称。
typedef struct{
// uint8_t name;
char *name[100];
char *lasTName[100];
}resFrame;
resFrame serverFrame;
for(int j=0;j<10;j++){
printf("%s",(char *)&serverFrame.name[j]);
}
输出:
�7��
我尝试了一个for和另一个指针,但它给了我同样的问题,有时一个核心转储
如果数据成员name
声明为
char *name[100];
确实包含指向字符串的指针那么你需要写,例如
printf("%sn", serverFrame.name[j]);
转换说明符期望一个类型为char *
的实参。
您的&serverFrame.name[j]
使用的表达式类型为char **
。将其强制转换为char *
类型会导致未定义的行为,因为调用printf
时会将指针的地址视为string对象的第一个元素的地址。