C++ 我使用指针分配一个动态字符数组,它得到运行时异常?

C++ 我使用指针分配一个动态字符数组,它得到运行时异常?,c++,C++,我写了下面的代码,但当我在内存中分配单词时,它会变为NULL! 以下代码的问题在哪里?我被迫写了这篇为什么要把lite拆分成几个字:(请帮忙 void strSplit(const char *line, char *words[]){ char *word = new char[81]; int index = 0; int s = strlen(line); for(int i = 0; i < s; i++) { if(lin

我写了下面的代码,但当我在内存中分配单词时,它会变为NULL! 以下代码的问题在哪里?我被迫写了这篇为什么要把lite拆分成几个字:(请帮忙

void strSplit(const char *line, char *words[]){

    char *word = new char[81];
    int index = 0;
    int s = strlen(line);
    for(int i = 0; i < s; i++)
    {
        if(line[i] != ' ' && line[i] != ',' && line[i] != ';')
        {
            if(word == NULL)
            {
                strcpy(word, (line[i] + "\0"));
            }
            else 
            {
                strcat(word, (line[i] + "\0"));
            }
        }
        else
        {
            if(word != NULL){
                strcpy(words[index], word);
                puts(words[index]);
                index++;
                puts(word);
                word = NULL;
            }
        }

    }
}
void strSplit(常量字符*行,字符*字[]){
char*word=新字符[81];
int指数=0;
int s=strlen(直线);
对于(int i=0;i
这是自杀


这是自杀。

line[i]+“\0”
没有做你认为它能做的事。你为什么不使用
std::string
?line[i]是一个字符,strcpy必须使用字符串,因此我必须通过在字符
+
上添加NULL将其转换为字符串,或者
char*
s不添加字符。它进行数字加法或指针数学运算。
line[I]+“\0”
不执行您认为的操作。为什么不使用
std::string
?line[I]是一个字符,strcpy必须使用字符串,所以我必须通过在字符
+
上添加NULL将其转换为字符串,或者
char*
s不添加字符。它进行数字加法或指针数学运算。另外,为什么有两个if语句做相同的事情?@Rawrgulmuffins完全正确。为什么添加
line[I]
char*
?等。这段代码中有太多错误,我甚至无法全部列举。@AmjadOmari,因为取消对空指针的引用是未定义的行为。另外,为什么有两个if语句执行相同的操作?@Rawrgulmuffins完全正确。为什么要添加
行[I]
char*
?等。这段代码错误太多,我甚至无法全部列举。@AmjadOmari,因为取消引用空指针是未定义的行为。
if (word == NULL) {
    strcpy(word, stuff);
}