指针帮助:取消指向访问其内部数据的结构的指针
Pointer help: dereferencing a pointer to a struct accessing data within it
我围绕某个代码的工作方式缠绕着一些麻烦。由于某种原因,它只是没有点击。这线代码通常与Unix域插座中的抽象文件句柄一起使用。
上下文:
typedef struct myStruct {
char charArray[10];
} myStruct;
myStruct myStructure;
myStruct *ptrToStruct = &myStructure;
/* This should change myStructure.charAarray[0] to equal a */
*(ptrToStruct.charArray) = 'a';
我知道数组本质上是指向数组中的第一个索引的指针,但指针没有数据(charArray
(。
我很难理解的原因是因为ptrToStruct
试图访问指针的数据成员charArray
,但是指针没有数据成员charArray
,然后将其取消给它。
这种像(*ptrToStruct).(*charArray) = 'a'
一样吗?但是,撤离操作员被纳入了吗?我为不清楚的情况感到歉意。
update :问题已得到回答。我正在误读代码,该代码实际上是*(myStructure.charArray)
,这就是它正在更改数组的第一个索引的方式。我还应该弄清楚这一点,因为正如SID解释的那样,指针没有.
操作员。
ptrToStruct
不是结构,所以
ptrToStruct.charArray
应该是
(*ptrToStruct).charArray
或
ptrToStruct->charArray
然后,是的,您可以使用
设置字符*( ptrToStruct->charArray ) = 'a';
或
( ptrToStruct->charArray )[0] = 'a';
这与
没有什么不同char charArray[10];
*charArray = 'a';
和
char charArray[10];
charArray[0] = 'a';
相关文章:
- 如何在 C# 中映射双 C 结构指针?
- 指针或结构的矢量
- MSVC将仅移动结构参数解释为指针
- 如何访问指针结构的成员变量?
- 如何将变量从变量传递到指针结构对象
- 如何在函数中检索指针结构
- C :变量的点地址至指针结构成员的地址
- C++指针结构不会被删除
- 初始化指针结构 - 内存中的外观
- C++指针结构和多线程
- c++中指针结构的运算符重载
- 为什么我不能转发声明指针结构?
- C# 如何定义新的指针结构
- 如何处理大型指针结构
- 我怎么能写一个函数的定义在模板类中声明返回指针结构对象
- 我如何编程指针结构或类变量在c++
- 具有指针结构的类所需的析构函数
- 为什么在非指针结构上进行类型转换会出现语法错误
- 语法:做binary_search (STL)排序向量的指针结构
- /a.检测到Glibc.out: munmap_chunk():无效指针- c++结构体的动态数组