gpt4 book ai didi

c++ - 'delete [] _v;' 是什么意思?

转载 作者:太空宇宙 更新时间:2023-11-04 14:55:44 26 4
gpt4 key购买 nike

template<>
class CalcHashClass<const char*> {
public:
CalcHashClass(const char* v) {
_v = new char[strlen(v) + 1];
strcpy(_v,v);
}

~CalcHashClass() {
delete [] _v;
}

int hashCode() {
printf("This is 'template <> class CalcHashClass<const char*>'.\n");
int len = strlen(_v);
int code = 0;
for (int i = 0; i < len; ++i)
code += (int)_v[i];
return code;
}

private:
char* _v;
};

对于上面的代码,我不确定delete [] _v;是什么意思?在我的理解中,_v 是一个指针。要删除它应该使用 delet _v,对吗? [] 是什么意思?

最佳答案

delete x 只会删除变量x而 [ ] 向内存管理器指示分配了一个数组。 delete[] x 将删除分配的数组。

关于c++ - 'delete [] _v;' 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15526637/

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