gpt4 book ai didi

c - 如何从C语言结构中读取值

转载 作者:行者123 更新时间:2023-11-30 18:32:08 25 4
gpt4 key购买 nike

#include<stdio.h>
#define msize 4096

struct memory
{
int a[msize];
};

void main()
{
struct memory m;
m.a[0]=250; // temperature value of 25,0
m.a[4]=01; // heater status OFF
m.a[8]=240; // temperature value of 24,0
m.a[12]=00; // heater status ON
m.a[16]=220; // temperature value of 22,0
m.a[20]=00; // heater status ON
read(&m);

}

void read(struct memory m)
{
int i;
for(i=0;i<sizeof(msize);i++)
{
scanf("%d", m.a[i]);
}
}

我的代码创建了一个大小为 4096 字节的结构,该结构的一个对象,然后为 i 赋值。

编译时,编译器会在 read 函数中抛出“首次定义”错误。

另外,有人可以帮我将此读取值转换为 ASCII 吗?

最佳答案

您需要向 scanf 传递一个要写入的地址,因此需要更改

scanf("%d", m.a[i]);

scanf("%d", &m.a[i]);
// ^

您还应该考虑将指向 m 的指针传递给 read,而不是按值传递这个巨大的结构

void read(struct memory* m)
{
int i;
for(i=0;i<msize;i++)
{
scanf("%d", &m->a[i]);
}
}

(实际上,通过假设此更新,您在 main 中的 read(&m) 调用似乎已经出现。)

关于c - 如何从C语言结构中读取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16436849/

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