在结构指针中传递值
Value passing in Struct Pointer
我没有在 C 语言工作过,C++ 5-6 年了。但是现在我必须做一个非常小的更改(如下所述)。我尝试阅读教程,但只是感到困惑。
下面我有包含 2 个属性的结构。我需要创建它的引用并将值传递给这两个属性。
在其中定义结构的文件。
//List of includes
typedef struct dscvs {
UPD_TRC(trc_no);
UPD_STS(status);
}dscvs_i;
使用结构变量的文件在这里,我需要创建一个类型为 dscvs_i 的变量,以便我可以在 UPD_TRC(trc_no) 和 UPD_STS(status) 中输入值;这就是我正在做的
dscvs_i *i_updsc;
i_updsc->trc_no = trcno;
但这是抛出错误"错误:表达式必须是可修改的左值"
请指教。
即使它编译了(由于宏将成员包装在结构中,它似乎没有这样做),这:
dscvs_i *i_updsc;
i_updsc->trc_no = trcno;
是无效代码。在分配某些内容之前,您无法修改指针i_updsc
指向的内容,即初始化指针以指向您可以修改的有效内存块。
如果您希望使用它,则需要使用以下malloc()
分配动态内存:
i_updsc = malloc(sizeof *i_updsc);
然后在尝试修改之前检查分配是否成功:
if(i_updsc != NULL)
{
i_updsc->trc_no = trcno;
}
相关文章:
- 如何在 C# 中映射双 C 结构指针?
- C++:映射结构中的结构指针
- C++:添加新结构时,结构指针向量中的所有元素都会更新
- 类的静态结构指针声明在C++
- 在两个.cpp文件之间定义全局类/结构指针
- 返回对常量结构(指针类型)成员的引用:明显的左值到右值转换
- 是否可以将无符号字符数组reinterpret_cast到仅包含C++中无符号字符成员的结构指针
- 如何在地图中使用结构指针
- 结构指针在"新"调用上给出已分配的地址?
- 铸造结构指针指向C 的工会指针
- c++ 结构指针在初始化为 NULL 时无法读取内存
- 函数中的结构指针的地址为0x1
- C 用结构指针初始化结构
- C 结构指针铸成数组Interop C#
- 方法中不允许访问结构指针
- 如何打印出结构指针
- MPI_Op_create:候选功能不可行.自定义结构指针不能解释为空指针
- 尝试将结构指针传递给类时出错
- 初始化结构指针的值
- 使用 pybind11 将自定义结构(指针向量)从 C++ 传递到 python 的方法是什么?