微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

scanf加载struct-> char []时出现问题

如何解决scanf加载struct-> char []时出现问题

| 我正在处理此问题: 我一直在创建链接列表(使用结构),我想加载用户的输入。 当我调试此代码时,调试器在scanf行上停止。
typedef struct Person{
char name[64];
int number;
} Person;

Person* record = malloc(sizeof(Person));
printf(\"Input name: \\n\");
scanf(\"%63s\",record->name);
我知道(* record).number == record-> number和\'&\'用于获取变量的地址,但是如果我想使用scanf作为变量,我不知道如何以最简单的方式解决问题加载输入。 提前致谢。     

解决方法

当使用gdb调试程序并遇到scanf语句时,调试器将提示用户输入。如果您此时输入内容并按Enter键,则执行将继续。 例如 1.如果源代码为以下文件名\'llist.c \'
#include <stdio.h>
#include <stdlib.h>

typedef struct Person{
char name[64];
int number;
} Person;

int main()
{

    Person* record = malloc(sizeof(Person));
    if(record == NULL)
    {
       printf(\"Memory allocation failed\\n\");
       return;
    }
    printf(\"Input name: \\n\");
    scanf(\"%63s\",record->name);
    printf(\"Name %s\\n\",record -> name);
    return 0;
}
使用debug选项将其编译为   gcc -g -o list llist.c 以
gdb ./list
运行调试器,并输入命令enter3ѭ开始执行程序。 当提示您输入时,输入任何字符串,然后按Enter。 然后将字符串打印到终端。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。