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