c语言 - 扫描加载结构 -> 字符[] 的问题



我正在处理这个问题:我一直在创建链表(使用结构),我想从用户加载输入。当我调试这段代码时,调试器在scanf.

一行停止。
typedef struct Person{
char name[64];
int number;
} Person;
Person* record = malloc(sizeof(Person));
printf("Input name: n");
scanf("%63s", record->name);

我知道(*记录)。number == record->number和'&'用于获取变量的地址,但我不知道如何以最简单的方式解决我的问题,如果我想使用scanf加载输入。

当使用gdb调试程序并遇到scanf语句时,调试器将提示用户输入。如果你在那个点输入并按回车键,执行将继续。

例如

。,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 failedn");
       return;
    }
    printf("Input name: n");
    scanf("%63s", record->name);
    printf("Name %sn", record -> name);
    return 0;
}

使用debug选项作为

编译它

gcc -g -o list.c

  1. gdb ./list身份运行调试器,输入run命令启动程序。
  2. 当提示输入时,输入任意字符串并按回车键。
  3. 然后将字符串打印到终端。

相关内容

  • 没有找到相关文章

最新更新