<分区>
我有以下功能:
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;
}
做到了!