gpt4 book ai didi

c++ - 构造函数中的 malloc 安全吗?

转载 作者:太空狗 更新时间:2023-10-29 19:52:20 25 4
gpt4 key购买 nike

如果我在类构造函数中使用 malloc(或 new/new[])分配内存,那段内存是否安全?被覆盖?

class stack {
private:
int * stackPointer;
public:
stack (int size) {
stackPointer = (int *) malloc (sizeof(int) * stackSize);
}
int peek (int pos) {
return *(stackPointer + pos); //pos < size
}
}

最佳答案

malloc/new 在构造函数中是安全的,前提是您遵循三个规则。使用 malloc/new,您现在拥有了一个资源,您必须明确注意在正确的时间释放该资源。

因此:您必须定义一个复制构造函数、一个赋值运算符和一个将释放 内存的析构函数。如果不这样做,该类可能会被滥用并给您带来很多问题。

如果您想避免必须定义这些额外的函数,请改用 std::vector,它会为您处理它们。

关于c++ - 构造函数中的 malloc 安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27489487/

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