我有以下功能:
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 ,同样的行为
编辑2:
char * strAlloc(string const & str) {
char * chArr = new char[str.size()+1];
strcpy(chArr, str.c_str());
return chArr;
}
做到了!