读书人

[讨论]char *的升级有关问题关于void

发布时间: 2012-04-04 16:38:51 作者: rapoo

[讨论]char *的升级问题关于void **的问题!!!
下面是我昨天的问题:

//=====================================================================
char *password;
if (GetPassWord(pdDoc, permsWanted, (void **)&password))
{
...
}

GetPassWord是一个Confirm对话框窗口,输入密码的窗口的,当返回true后,将得到的密码附加在(void **)&password里,我现在不想用这个对话窗口,而直接使用变量对password附值,我该怎么写呀,试了一天都不行,求救呀

我直接char* password = "1111 ";运行到if语句里面后,就弹出
"0x018cd966 "指令引用的 "0x00313131 "内存。该内存不能为 "written "
错误,这咋搞呀!!!!!!
//=====================================================================

谢谢前面的同仁们帮我解答,我已结贴散分了,但是问题还没完全解决,所以这里再开此贴。
我将代码改成这样了,如下:
char password[20] = "1111 ";
if (UserConfirm( "确定要打开吗? "))
{
...
}
UserConfirm是自己写的一个确认窗口,可还是报错,提示如下:
0x0301bc95 处未处理的异常: 0xC0000005: 读取位置 0x0011ce00 时发生访问冲突

因为GetPassWord是已经封装好的类,所以不知里面是如何操作的,这里希望大家讨论下,该怎么饶过它呢?

[解决办法]
char *password;
if (GetPassWord(pdDoc, permsWanted, (void **)&password))
{
*password = new char[1024];
strncpy((char*)*password , "aaaaaaa " );
}
[解决办法]
char* password = "1111 ";这句是有问题的,password指向常量字符,只能读不能写.如果需要改password的值,必须是能修改的字符地址.

读书人网 >C++

热点推荐