主持人 小五 2021-12-18 17:18
浏览 24
已结题

真不知道该怎么办了,这结构体变量咋键入啊

 ###### 问题遇到的现象和发生背景
如图,自己编程序想搞懂结构体的使用,运行时键入内容进去存储再选择是否输出,但键入内容后报错也不知道咋改。

img


 ###### 问题相关代码

#include <stdio.h>
#include <stdlib.h>
typedef struct {
    char name1;
    char number[13];
    char pw1[7];
    char kt[30];
}SA ;
typedef struct{
    char *name2;
    char phone;
    char pw2;
    }TC;

void main()
{
    int t;
    
    TC *P,a;
    printf("请输入您的姓名,工号,密码\n");
    scanf("%s %s %s",&a.name2,&a.phone,&a.pw2);
    printf("设置成功!");
printf("输入1查看您的信息");
    scanf("%d",&t);
    if (t==1){
        printf("%s%s%s",a.name,a.phone,a.pw2);
}
}

 ###### 运行结果及报错内容

img


如果鼠标点击运行,键入后就出现Run-Time Check Failure #2 - Stack around the variable 'a' was corrupted.

 ###### 我的解答思路和尝试过的方法
把main函数int,void都试过,都不行
 ###### 我想要达到的结果
代码正常运行,键入姓名工号密码后能在后续输入1的情况下输出信息

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 12月26日
    • 创建了问题 12月18日

    悬赏问题

    • ¥20 思科:Router c3600 MN-4E插槽
    • ¥15 16进制修改视频的元数据
    • ¥15 岛津txt格式文件转nirs格式
    • ¥15 石墨烯磁表面等离子体
    • ¥15 angular 项目无法启动
    • ¥15 安装wampserver,图标绿色,但是无法进入软件
    • ¥15 C++ MFC 标准库 加密解密解惑
    • ¥15 两条数据合并成一条数据
    • ¥15 Ubuntu虚拟机设置
    • ¥15 comsol三维模型中磁场为什么没有“速度(洛伦兹项)”这一选项