我想将一个 char
添加到一个 char*
中。
例如,我有 char *word = " ";
和 char ch = 'x';
我使用以下方法进行添加:append(word, ch);
...
void append(char* s, char c)
{
int len = strlen(s);
s[len] = c;
s[len+1] = '\0';
}
这段代码会导致段错误,我理解原因是s[len]
越界了。那么如何才能让它正常工作呢?如果我使用char word[500];
,我也需要经常清空它,那么当其中添加了一些字符后,如何清空呢?strlen
的结果始终是500
吗?谢谢。
s[len + 1]
超出了范围。s[len]
是空字节,不会被strlen
计算在内。 - pmrsizeof(s)
。 - user529758