gpt4 book ai didi

c - 从 C 中的 malloc 数组中删除元素

转载 作者:太空宇宙 更新时间:2023-11-04 03:36:17 25 4
gpt4 key购买 nike

所以我有

int * queue;
queue = (int*)malloc(size) //size being a user variable

由于这是一个队列,删除元素时会进行FIFO处理。我特别必须使用数组而不是链表来执行此操作。当我删除时,我只是将每个数字移到索引 1。但是,如何摆脱最后一个数字?因此,如果我为一个 5 元素数组分配大小,然后输入 1 3 2 4 _(nothing),然后我将其删除,使其变为 3 2 4 4 _。我如何摆脱不应该存在的第二个 4。我想要 3 2 4 _ _。我以为我会设置 queue[last_element] = NULL 来摆脱它,但这会引发“赋值从指针生成整数而不进行强制转换”警告。那么正确的做法是什么?

最佳答案

你几乎成功了。你想要的是这个:

queue[last_element] = 0;

实际上 0 等同于 NULL。你得到的错误是因为 NULL 被定义为 (void *)0,使其成为一个指针。

关于c - 从 C 中的 malloc 数组中删除元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32491101/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com