我正在 Visual Studio 2010 中编写一个 Win32 控制台应用程序。
考虑一个以两个char*
作为参数的函数。
以下是函数原型:
void WriteApplicationFile(char *mappname,char* MessageString)
{
//Do some File related stuffs.
}
现在以下调用运行良好:
WriteApplicationFile("FirstOne", "Append Me");
WriteApplicationFile("FirstOne", "Append Another");
但是,如果我用一些字符数组的东西尝试同样的事情,这会给我一个断言,然后把我扔到组装上。
以下代码不起作用:
char * LocalBuffer = new char[100];
sprintf(LocalBuffer,"Number of jobs in Queue %d",JobsCount);
WriteApplicationFile("SAAZshadowProtect",LocalBuffer);
free(LocalBuffer);
LocalBuffer = NULL;
//Work fine.
//...
LocalBuffer = new char[100];
sprintf(LocalBuffer,"Log file name %s",LogFileCharName);
WriteApplicationFile("SAAZshadowProtect",LocalBuffer);
free(LocalBuffer); // I got assertion here..
LocalBuffer = NULL;
我哪里错了?
另一件事是我想用 try-catch 块处理所有断言和错误。我该怎么做?