c - 如何增加结构体中的指针值和指针地址

标签 c

如何增加结构体中定义的指针的地址?我在主函数中定义了一个指向该结构的指针。如果我使用 ptr->element,其中 element 是结构内部的指针,它是否引用该元素指向的值?如果是,如何让元素指向下一个位置?

最佳答案

它是特定于实现的,但实际上规则是:

结构体成员按照声明的顺序存储。 如有必要,请在每个结构体成员之前添加 padding,以确保正确的对齐

每个基元类型 Ntype 都需要 sizeof(Ntype)< 的对齐方式 字节。

因此,给出以下结构:

struct Ntype
{
   char ch1;
   short sh;
   char ch2;
   int *a;
};
  • ch1 位于偏移量 0
  • 插入一个填充字节来对齐
  • 在偏移量 2 处 sh
  • ch2 位于偏移量 4 处,紧接在 s 之后
  • 插入 3 个填充字节以对齐...
  • 偏移量 8 处的 a

所以sizeof(Ntype)是16。

关于c - 如何增加结构体中的指针值和指针地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46746352/

相关文章:

java - 如何激怒 "Application not responding"

c++ - 理解Visual C++的rand()函数的算法

c - 在C中的数字之间插入空格

c - 溢出以更改 C 结构中的下一个元素

c++ - 在c中的链表中找到最小的两个节点

使用 C 语言编写 Windows 10 OBEX 客户端

c - 使用 CZMQ-4.1.0 新 zsock API 更新的异步 Majordomo 模式示例不起作用

c - 我似乎无法让 strcmp 正常工作

c++ - 将 float 转换为字符串而不会丢失精度

c - 结构定义(不是实例化)应该放在头文件中吗?