从指针数组中删除元素的正确方法

时间:2016-01-03 15:54:30

标签: c++

请看一下这个功能:

@JsonIgnoreProperties(ignoreUnknown = true)
public class UserDto {

    @JsonProperty("items")
    private List<User> userList;

    public List<User> getUserList() {
        return userList;
    }

    public void setUserList(List<User> userList) {
        this.userList = userList;
    }
}

所以我想我很清楚我会尝试做什么。基于代码从产品指针数组中删除产品,然后将最后一个产品放在一个已删除的位置。我标记了程序崩溃的地方。如果我评论该行它可以正常工作,但是不会泄露内存吗?请注意,这是针对学校的,所以我必须使用指针。

1 个答案:

答案 0 :(得分:1)

除了创建内存泄漏之外,这一步似乎没有其他目的:

sudo apt-get install libbz2-dev
cabal update
cabal install ipprint hscolour

此步骤转移对象的隐含所有权:

          products[i] = new Product(); // create new 'default' product 

因此,此步骤不会修复内存泄漏。它会导致崩溃(正如你已经知道的那样):

          products[i] = products[_curSize-1]; // copy product at last index at place of deleted product

看着整个事情:

delete products[_curSize-1];