C ++使用Strtok读取String字符时出错

时间:2018-04-18 23:27:45

标签: c++ strtok

此处的问题在于阅读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中不起作用。将尝试从我必须使用的框架中删除一些文件夹,然后再试一次。

1 个答案:

答案 0 :(得分:0)

嗯,问题解决了。决定停止使用strtok并且做好旧的迭代运行避免分离器和Voila,它完美地工作。我讨厌Visual Studio