c语言打印结构体内容时显示读取位置时发生冲突,调试不知道怎么解决?

img


打印结构体内容时,显示引发了异常,说是位置冲突,编译器无法编译。选择调试但不知道怎么选择才好。

应该是 printf("%s %c %d %s",....),不能用%s字符串占位符代替char字符占位符

如果要存储性别为汉字,可以将性别字段sex定义字符数组;

然后结构定义一次即可,不需要定义两次。

修改如下:


#include <stdio.h>

// 结构只需要定义一次 
struct stu{
    
    char name[20];
    char sex[10];  // 如果性别需要输入汉字,可以使用字符数组来存储性别 
    int age;
    char tele[15];
}; 

int main(void){
    

    struct stu s={"anna","女",19,"6681565"};
    printf("%s %s %d %s",s.name,s.sex,s.age,s.tele);    
    
    return 0;
}

img

结构体无需重复定义;
还有结构体中性别是字符型,而你输入的却是字符串,肯定是冲突的;