Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/124.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 无法在c+;中生成正确的字符数组+;_C++_String_Function - Fatal编程技术网

C++ 无法在c+;中生成正确的字符数组+;

C++ 无法在c+;中生成正确的字符数组+;,c++,string,function,C++,String,Function,我不知道我第二次调用这个函数时,我得到的路径被追加为 引用getenv的手册页: 正如通常实现的那样,getenv()返回指向环境列表中字符串的指针。调用者必须注意不要修改这个字符串,因为那样会改变进程的环境 换句话说,你目前正在做的是不允许的 而是创建另一个缓冲区并在该缓冲区中连接。例如: char*tempPath=getenv(“LocalAppData”); if(tempPath!=NULL) { std::字符串环境; env=临时路径; env+=“\\MS\\namedP

我不知道我第二次调用这个函数时,我得到的路径被追加为


引用
getenv
的手册页:

正如通常实现的那样,getenv()返回指向环境列表中字符串的指针。调用者必须注意不要修改这个字符串,因为那样会改变进程的环境

换句话说,你目前正在做的是不允许的

而是创建另一个缓冲区并在该缓冲区中连接。例如:

char*tempPath=getenv(“LocalAppData”);
if(tempPath!=NULL)
{    
std::字符串环境;
env=临时路径;
env+=“\\MS\\namedPipe.json”

STD::你是如何确定你可以把数据附加到<代码> GETEnv的字符串上?我会查一下,确认我是你。你是问C还是C++?看起来临时的字符串是第二次调用函数的字符串……我如何清除这个?GETEnv是环境表,通过写Wi使它变长。I’我将更改您写入的字符串,并在表的下一个字符串中把事情搞乱——就像通过写入argv[0]使它变长会搞乱argv[1]一样,因为指向此字符数组的指针已更新(我猜是这样的)……有什么方法可以解决这个问题吗?
myFunction(){
char *tempPath = getenv("LocalAppData");
    strcat(tempPath, "\\MS\\namedPipe.json");

printf(" the path is %s \n",tempPath
}

int main(){

myFunction();
myFunction();

return 0;
}