C++ 我使用指针分配一个动态字符数组,它得到运行时异常?
我写了下面的代码,但当我在内存中分配单词时,它会变为NULL! 以下代码的问题在哪里?我被迫写了这篇为什么要把lite拆分成几个字:(请帮忙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
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);
}