Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/2: Рейтинг темы: голосов - 2, средняя оценка - 5.00
macintosh95
0 / 0 / 1
Регистрация: 02.10.2013
Сообщений: 16
1

Функция работает некорректно

05.11.2013, 23:50. Просмотров 409. Ответов 1
Метки нет (Все метки)

Здравствуйте!
Задача, написать функцию myfuc по заданному вызову ее
C
1
2
3
4
5
6
7
8
9
int main(int argc, char *argv[])
{
    char *s = NULL;
    myfunc1(&s, "HelloHello"); /* result: "HelloHello" */
    myfunc1(&s, s+5); /* result: "Hello" */
    myfunc2(&s, " World"); 
    puts(s); /* result: "Hello World" */
    return 0;
}
Вызов именно с такими параметрами!
Написал функцию myfunc2
C
1
2
3
4
5
6
7
8
9
10
char *myfunc2(char **s, char *t)
{
    int k=0;
    char *ch=*s;
    while (*ch++ && ++k);
    *ch--;
    *s=realloc(*s,sizeof(char)*(strlen(t)+k)+1);
    while (*t && *ch++=*t++);
    return ch;
};

Когда передаются параметры ("Hello"," World"), все отлично работает, результат "Hello World"
но, если передать ("Hello"," Wordssssss"), то результат просто "Hello"
Пожалуйста, помогите, как это можно решить, или хотя бы в чем может быть проблема?

Заранее благодарен!
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.11.2013, 23:50
Ответы с готовыми решениями:

Функция некорректно работает
Функция компилируется, но постоянно один и тот же ответ. y=0000... Где допущена ошибка? ...

Функция некорректно выводит значение?
Не могу понять, почему выводи кучу нулей вместо решения? Может быть что-то с кодом? ...

Некорректно работает if
Здравствуйте. У меня проблема. Если я указываю такое условие: if ( (i != k) && (j != l) ) то if...

Стек работает некорректно
Почему он не прорабатывает до конца? #include <stdio.h> #include <stdlib.h> struct node { ...

Некорректно работает прогрмма
Программа выдает с a2 по a4 нули, хотя там должны быть значения отличные от нуля. Помогите...

1
macintosh95
0 / 0 / 1
Регистрация: 02.10.2013
Сообщений: 16
07.11.2013, 00:07  [ТС] 2
Спасибо за вашу помощь , но проблему решил сам.
В функции myfunc2 после realloc(), если длина больше чем была, то определяется новый адрес, а у указателя *ch остается прежний, поэтому не добавляется!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.11.2013, 00:07

Некорректно работает программа на С
Все примеры из учебника используют переменные типа int но мне приходится использовать переменные...

Некорректно работает #define
По идее, если что-нибудь ввести, то программа должна попытаться выполнить это как команду то есть...

Некорректно работает программа на С/С++
Программа написанная на С++ должна вычислять факториал числа а в итоге не делает ничего кроме как...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru