私は次の機能を持っています:
char * strAlloc(string str) {
char * chArr = new char[str.size()];
for (size_t i = 0; i < str.size(); i++) {
chArr[i] = str[i];
}
return chArr;
}
char * chArr = new char[str.size()];
デバッガーが次のように言った後に休憩をとった場合:
chArr 0x00c38cf8 "ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍýýýý««««««««þîþîþ"
そして、for反復の後に休憩をとると、次のようになります。
chArr 0x00c38cf8 "***************ýýýý««««««««þîþîþ"
だから私は何を間違っているのですか?
編集:
size_t const gSize = 15; typedef char *
TMaze [gSize];
Maze[0] = strAlloc ("***************");
タイプTMazeでは、char配列のポインターもstr.size()+ 1を試す必要があり、同じ動作です
edit2:
char * strAlloc(string const & str) {
char * chArr = new char[str.size()+1];
strcpy(chArr, str.c_str());
return chArr;
}
それをやった!