错误出现异常,提示写入位置0X00483ddb时发生访问冲突,怎么解决

异常出现错误,提示写入位置0X00483ddb时发生访问冲突,如何解决
上代码:
f1(....)
{
....
f2("QQGame.exe");
}
f2(char* ProcessName)
{
....
if(strcmp(strupr(szExeFile),strupr(ProcessName))==0)
{
...
}
}
出现错误,提示写入位置0X00345b位置时发生访问冲突,调试跟踪进入了系统文件strupr.c中的_strupr函数中:
extern "C" char * __cdecl _strupr (
        char * string
        )
{
    if (__locale_changed == 0)
    {
        /* validation section */
        _VALIDATE_RETURN(string != NULL, EINVAL, NULL);

        char *cp;       /* traverses string for C locale conversion */

        for ( cp = string ; *cp ; ++cp )
            if ( ('a' <= *cp) && (*cp <= 'z') )
                *cp -= 'a' - 'A';

        return(string);
    }
    else
    {
        _strupr_s_l(string, (size_t)(-1), NULL);
        return (string);
    }
}
错误出现异常,提示写入位置0X00483ddb时发生访问冲突,怎么解决

------解决方案--------------------
f2("QQGame.exe");
相当于传了1个常量字符串进去,所以一改值就错了
------解决方案--------------------
2楼说的没错,这么改试试:
char* d;
*d="QQGame.exe";
f(d);