void replace(char *str) {
unsigned int len = 0;
unsigned int no_of_spaces = 0;
while (*str) {
if ((char)*str == SPACE)
no_of_spaces++;
str++;
len++;
}
unsigned int new_len = len + 2 * no_of_spaces;
str = (char*) realloc(str, new_len * sizeof(char));
str[new_len] = '\0';
}
Я использую функцию как replace("random string");
.Получение (сбрасывание сердечника) при использовании realloc
Здесь я пытаюсь увеличить размер строки, чтобы пробелы могли быть заменены другой строкой. Для этого мне нужно подсчитать количество пробелов и получить длину исходной строки. Я смог это сделать.
Для изменения размера Я использую realloc
, но когда я запускаю его, он дает Aborted (core dumped)
?
realloc возвращает NULL, если вызов завершается с ошибкой, вы должны это проверить ..... –
Покажите, как вы называете 'replace' и что вы передаете параметру ass для' replace'. –
См. Также: [Я делаю результат 'malloc'?] (Http://stackoverflow.com/questions/605845/do-i-cast-the-result-of-malloc) – Sebivor