gpt4 book ai didi

c++ - System::String to char* 函数..内存泄漏?

转载 作者:行者123 更新时间:2023-11-28 07:27:01 25 4
gpt4 key购买 nike

我正在使用 Visual C++ 2010。我有以下函数可以将 System::String^ 对象转换为字符指针 (char*)。

void string2charPtr(System::String^ original, char *&out) {
int length = original->Length;
out = new char[length+1];
for (int i = 0; i < length; i++)
out[i] = (char) original[i];
out[length] = '\0';
}

使用示例:

int main(void) {
char* cPtr;
System::String^ str = gcnew System::String("Hello");
string2charPtr(str, cPtr);
delete cPtr;

return 0;
}

“delete cPtr”指令是否必要?还是我不调用会内存泄露?

最佳答案

因为你分配了一个数组,所以正确的说法是这样的:

delete [] cPtr;

是的,如果没有它,就会发生内存泄漏。在这种特殊情况下,这并不重要,因为程序会立即结束,然后操作系统会回收内存。

关于c++ - System::String to char* 函数..内存泄漏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18583490/

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