【问题标题】:How to delete element from array by pointers如何通过指针从数组中删除元素
【发布时间】:2018-11-04 18:09:44
【问题描述】:

我想从数组中删除第 n 个元素,当我使用 for 循环时,我希望程序按顺序打印除第 n 个元素之外的所有数字。 前任。 4 7 6 2 9 5.

如果我想删除第二个元素,那么在删除后我想打印 4 7 2 9 5 并且我不想将每个元素都向左移动。

是否可以使用free() 或指针?

请解释一下,我是指针编程的新手。

【问题讨论】:

  • 不,不移动数组中的元素是不可能的,数组中没有任何“洞”。使用例如动态分配的数组甚至不可能malloc。无论您想解决什么问题,数组可能都是错误的数据结构?
  • 当你的意思是删除时,你的意思是等于 0 或者抑制元素或者只是不打印它?
  • 我想你真正想要的是linked list

标签: c arrays pointers


【解决方案1】:

您不能只使用free() 删除数组的元素您必须选择像链表这样的数据结构才能执行此类操作! https://www.geeksforgeeks.org/linked-list-set-3-deleting-node/ 试试这个!

【讨论】:

    【解决方案2】:

    不,如果数据是 C 整数数组,则不可能,例如:

    int array[10];
    

    但是,如果您使用其他数据结构,例如 linked list,则可以删除一个元素而不移动其余元素。

    【讨论】:

    • 链表可能比较棘手,他不知道怎么用 free =)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    • 2015-12-28
    • 2023-03-04
    • 1970-01-01
    • 1970-01-01
    • 2017-02-26
    相关资源
    最近更新 更多