void Clients::SetFog(char* fog)
{
char Buffer[45];
sprintf(Buffer, "d %s", fog);
CMD(ID, SV_CMD_RELIABLE, Buffer);
RtlZeroMemory(Buffer, sizeof(char));
}
我的问题是;我不确定在函数中定义时如何处理Buffers,well chars和int类型变量。正如你注意到我从内存中归零它,我用几乎所有定义类型的函数来做这件事只是为了保持内存清洁,我构建的应用程序类型和它所用的平台我无法调试深入/窥视记忆。
答案 0 :(得分:0)
首先,你没有完全归零缓冲区的内存
RtlZeroMemory(Buffer, sizeof(char));
仅将第一个字节归零,因为sizeof(char)为1
其次,您的代码不安全,因为strlen(雾)可能超过Buffer的长度(45)
第三个问题尚不清楚。你是什么意思问"我不确定如何在函数中定义Buffers,well chars和int类型变量"。一般的答案是以相同的方式处理,就好像它们被定义为不在函数内。你可以澄清一下你的问题吗?