草庐IT

c++ - Valgrind: "Invalid read"与 c_str 和 strtod

我正在使用strtod()来转换一些输入字符串。在用valgrind检查我的代码时,我遇到了“大小为8的无效读取”。如果b以“i”或“n”开头,则会显示该消息,这就是我到目前为止所发现的。另外,如果我直接创建一个constchar*(不调用c_str()),strtod似乎也可以。这是代码:#include#includeintmain(intargc,char**argv){char*a=0;std::stringb="i";constchar*c=b.c_str();doubled=strtod(c,&a);}和(详细的)valgrind输出:==12638==Memcheck,a

Oracle连接数据库提示 ORA-12638:身份证明检索失败

ORA-12638是一个Oracle数据库的错误代码,它表示身份验证(认证)检索失败。这通常与数据库连接相关,可能由于以下几个原因之一引起:错误的用户名或密码:提供的数据库用户名或密码不正确,导致身份验证失败。配置问题:数据库配置文件(如sqlnet.ora或listener.ora)中的一些配置可能导致连接问题。网络问题:连接数据库时遇到网络问题,可能导致无法正确地进行身份验证。安全设置:数据库的安全设置可能导致身份验证失败,例如密码策略、用户锁定等。要解决这个问题,你可以尝试以下步骤:确认用户名和密码:确保你提供的用户名和密码是正确的。可能是输入错误,或者账户已被禁用或锁定。检查网络连接: