gpt4 book ai didi

c++ 在 free() 上崩溃

转载 作者:行者123 更新时间:2023-11-27 23:55:21 25 4
gpt4 key购买 nike

我对 free() 有疑问;一直以来我的应用程序都崩溃了,没有它工作但一些发送的数据包只是崩溃了。这里有什么问题?任何人都可以帮助我,谢谢。

unsigned char buf[1024];
int size = 0, len;
wchar_t *wstr;
va_list args;
va_start(args, Format);

while (*Format != 0)
{

switch (*Format)
{
case 'b':
len = va_arg(args, unsigned int);
memcpy(buf + size, va_arg(args, void*), len);
size += len;
break;
default:
// command on unknown
break;
}
Format++;
}

va_end(args);
true_SendPacket(This, "b", size, (int)buf);
free(buf); // this line

最佳答案

那个缓冲区是在栈上分配的;您只需要释放堆内存,即使用 malloc 或类似函数分配的内存。堆栈内存是自动处理的。

您的另一个问题似乎是您将缓冲区转换为 int 而不是 int 数组,而不是 void 指针。

关于c++ 在 free() 上崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43016911/

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