以下のコードを実行しましたが、完全に機能します。ポインタに関するものなので、確認したいだけです。文字列にchar*を割り当てるとコピーが作成されると確信していますが、char *を削除しても、stringvarは値を保持します。
#include <stdio.h>
#include <string.h>
#include <string>
#include <iostream>
int main()
{
std::string testStr = "whats up ...";
int strlen = testStr.length();
char* newCharP = new char[strlen+1];
memset(newCharP,'\0',strlen+1);
memcpy(newCharP,testStr.c_str(),strlen);
std::cout << " :11111111 : " << newCharP << "\n";
std::string newStr = newCharP ;
std::cout << " 2222222 : " << newStr << "\n";
delete[] newCharP;
newCharP = NULL;
std::cout << " 3333333 : " << newStr << "\n";
}
会社のプロジェクトでいくつかのコードを変更しているだけで、char*はC++の関数間で渡されます。char *ポインタが文字列にコピーされましたが、関数の最後でchar*が削除されています。これについての具体的な理由は見つかりませんでした。したがって、文字列にコピーされるとすぐに、char*を削除するだけです。これは問題になりますか...?
PS:Codereviewでこの質問をすでにしましたが、SOに移動するよう提案されました。だから私はそこに近いことを示し、ここに質問を投稿しました。