首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在结构指针中传递值

在结构指针中传递值
EN

Stack Overflow用户
提问于 2013-02-04 16:43:21
回答 1查看 163关注 0票数 0

我已经有5-6年没有在C,C++工作过了。但现在我要做一个很小的改变(解释如下)。我试着阅读教程,但只是感到困惑。

下面我有一个包含2个属性的结构。我需要创建它的引用并将值传递给这两个属性。

在其中定义结构的文件。

代码语言:javascript
复制
//List of includes
typedef struct dscvs {
UPD_TRC(trc_no);
UPD_STS(status);
}dscvs_i;

使用结构变量的文件//这里我需要创建一个dscvs_i类型的变量,这样我就可以在UPD_TRC(trc_no)和UPD_STS(Status)中提供值;//这就是我正在做的事情

代码语言:javascript
复制
dscvs_i *i_updsc;
i_updsc->trc_no = trcno;

但这是抛出错误“错误:表达式必须是一个可修改的左值”

请提个建议。

EN

回答 1

Stack Overflow用户

发布于 2013-02-04 16:57:07

即使它编译了(由于宏将成员包装在结构中,它似乎没有编译),这是:

代码语言:javascript
复制
dscvs_i *i_updsc;
i_updsc->trc_no = trcno;

是无效的代码。在分配一些东西之前,你不能修改指针i_updsc所指向的东西,例如,初始化指针来指向你可以修改的有效内存。

如果您希望使用它,则需要使用malloc()分配动态内存

代码语言:javascript
复制
i_updsc = malloc(sizeof *i_updsc);

然后检查分配是否成功,然后再尝试修改:

代码语言:javascript
复制
if(i_updsc != NULL)
{
  i_updsc->trc_no = trcno;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14683102

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档