此处的问题在于阅读char * nv
,其基本上指向0xCCCCCCCC
,错误为Error reading characters of string
已经尝试过其他修复方法。此代码还有更多步骤,但这是简化的,过于特定的版本:
char** splitStr(char* str, char separator, int sizeRet) {
char ** tot = new char *[sizeRet];
char * sep = new char[2];
sep[0] = separator;
sep[1] = '\0';
char * nv;
nv = strtok(str, sep);
int i = 0;
while (nv != NULL) {
tot[i] = nv;
nv = strtok(NULL, sep);
i++;
}
return tot;
}
更新
该代码完美地适用于在线编译器。由于某些奇怪的原因,它在Visual Studio 2017中不起作用。将尝试从我必须使用的框架中删除一些文件夹,然后再试一次。
答案 0 :(得分:0)
嗯,问题解决了。决定停止使用strtok并且做好旧的迭代运行避免分离器和Voila,它完美地工作。我讨厌Visual Studio