トップページ > プログラム > 2018年02月17日 > Lqib7/b9F

書き込み順位&時間帯一覧

65 位/177 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000001000000000000001



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん (マクド FF6b-xgEu)
C++相談室 part134

書き込みレス一覧

C++相談室 part134
162 :デフォルトの名無しさん (マクド FF6b-xgEu)[sage]:2018/02/17(土) 09:43:48.64 ID:Lqib7/b9F
以下のようにconst char*型の文字列でchar*型の変数を初期化したいときに
strcpyやstrlenを書かずにstd::stringを利用して短くかけないかと思うのですが
msvcだとエラーにならず、clang, gccだとdeleteでセグメンテーション違反になります。
どうすればより良い感じになるでしょうか?const_castはできれば使いたくないです。

#include <string.h>
#include <string>
#include <iostream>
int main()
{
const char* asdf = "asdf";
// char* psz2 = new char[strlen(asdf)+1];
// strcpy(psz2, asdf);
std::string *psz = new std::string(asdf);
char* psz2 = &(*psz)[0];

std::cout << psz2 << std::endl;
delete psz2;
return 0;
}


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。