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