gpt4 book ai didi

c - scanf 和 struct 的问题

转载 作者:太空宇宙 更新时间:2023-11-04 05:57:46 26 4
gpt4 key购买 nike

我正在尝试读取一个结构中的两个变量,但我在使用 scanf 时遇到了一些问题。这是代码:

typedef struct {
int pc;
char* label;
} sb;

...这是结构的实例化:

sb input;
fscanf (in, "%s%d", input.label, &(input.pc));
printf ("%s %d\n", input.label, input.pc);

我期待输出一个“c 字符串”和一个整数,但出于某种原因它给了我:(null) 和 -971303966。

最佳答案

主要问题是您实际上没有在结构中为标签分配任何存储空间。一种解决方案是将声明更改为:

typedef struct {
int pc;
char label[80];
} sb;

但是请注意,代码现在是危险的,因为它读取缓冲区时没有对读取设置任何限制,因此它可能会溢出缓冲区。

关于c - scanf 和 struct 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24103243/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com