c - 尝试将指针取消引用回结构中

标签 c arrays pointers

基本上,我正在尝试实现一个链表数组,但在尝试删除第一个节点并将其替换为下一个节点时遇到问题,因为它是一个指针。

typedef struct BLOCKSTRUCT{
    int address;       //starting address
    struct BLOCKSTRUCT* next;
    int status;
} block;

int main(int argc, char** argv)
{
    int tSize = 10;
    block *arr = (block*)malloc(sizeof(block) * tSize);
    // other code in between

    if(arr[size].next != NULL)
    {
        arr[size] =  &arr[size].next; // Having problems with this line
    }

}

我尝试过以下方法:

  • arr[大小] = &arr[大小].next;

  • arr[大小] = ( block )arr[大小].next;

  • &arr[大小] = arr[大小].next;

但我收到以下错误:

  • 初始化程序无效
  • 请求转换为非标量类型
  • 赋值中的类型不兼容

非常感谢有关如何克服此问题的任何想法。 谢谢!

最佳答案

您想要指针 next 指向的内容。

arr[size] = *arr[size].next;

关于c - 尝试将指针取消引用回结构中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33077918/

相关文章:

使用指针从 csv 文件复制行

iphone - Objective C 将网页显示为 UITableView 的子类

c - 此代码实现是否已定义?

arrays - 重置 Swift 数组

c++ - 调试 C++ 代码

C编程...链表指针迭代

c - 对 C 结构中两个连续点的包装做出假设是否安全?

C中多个数组的笛卡尔积

javascript - redux:使用不可变方法修改数组中对象的属性的性能。优点和缺点

c++ - 为什么我可以从 char * const 值创建 char * vector ?