4 / 4 / 4
Регистрация: 11.10.2013
Сообщений: 123
1

Копирование указателей

10.11.2014, 17:59. Показов 800. Ответов 2
Метки нет (Все метки)

Здравствуйте дорогие товарищи.
Имеется указатель на char, который читается с клавиатуры следующим образом:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
char* str = (char*)malloc(sizeof(char));
void read()
{
    for (int i = getchar(); i != 10; i = getchar())
    {
        if (used == size)
        {
            str = (char*)realloc(str, sizeof(char) * ++size);
        }
        str[used++] = i;
    }
    str[used] = '\0';
}
Мне нужно, что бы пользователь указывал интервал от какого символа и сколько нужно скопировать. Я делаю это с помощью следующего метода:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
char* copy = (char*)malloc(sizeof(char));
void v_copy(int ot, int sk)
{
    copy = (char*)realloc(str, sizeof(char) * (1+sk));
    int j = 0;
    for(int i = ot-1; i<ot+sk; i++)
    {
        copy[j] = str[i];
        j++;
    }
    copy[sk] = '\0';
    printf("\n");
    printf("Recorded in the clipboard: %s", copy);
}
Однако при вводе строки 0123456789 то при укзании пользователя копировать с 1 по 5 символ по порядку (v_copy(0,5); )копируется только 12345, хотя должно было 01234.
Я только новичок в работе с указателями, а потому не могу понять причину проблемы. Подскажите пожалуйста, как мне решить эту проблему?
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.11.2014, 17:59
Ответы с готовыми решениями:

Копирование списка указателей на виртуальный класс
Добрый день! Подскажите, пожалуйста. Имею примерно такой код class Abstract { public: ...

Почему в сортировке указателей на объекты в вызове функции используются адреса объектов, а не указателей?
Доброго времени суток! Рассматриваю пример (из Лафоре) сортировки массива указателей на объекты,...

Создать специфицированный шаблон функции, принимающей массив указателей на char и количество самих указателей
Задача: создать специфицированный шаблон функции, принимающей массив указателей на char и...

Объяснить различия в работе указателей на целое число и указателей на const char (строки в стиле Си)
Уважаемые программисты, возникло несколько вопросов касательно указателей. Почему при выводе...

2
7097 / 6093 / 2779
Регистрация: 14.04.2014
Сообщений: 26,215
10.11.2014, 18:06 2
Почему у тебя realloc(str..., если ты с copy работаешь? В цикле зачем ot -1, если с нуля индексируешь?
И вообще это велосипед. Есть strcpy() и т. п., пользуйся.
1
4 / 4 / 4
Регистрация: 11.10.2013
Сообщений: 123
10.11.2014, 18:12  [ТС] 3
nmcf, спасибо большое. Не заметил. Просто
C++
1
copy = (char*)realloc(str, sizeof(char) * (1+sk));
я изначально копировал из
C++
1
str = (char*)realloc(str, sizeof(char) * ++size);
Проблема решена
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.11.2014, 18:12

Создать специализацию для шаблона, которая принимает массив указателей на строки и количество этих указателей
Нужно создать специализацию для шаблона, которая принимает массив указателей на строки и количество...

Как обойтись без указателей и указателей на указатель?
Ибо не совсем выходит понять,что на что тут указывает #include &quot;stdafx.h&quot; #include &lt;iostream&gt;...

Различия указателей char* от указателей других типов
Помогите пожалуйста разобраться! Прочитал раздел про указатели и даже вроде бы понял. Что...

Создание массивов указателей на массивы указателей
Помогите в решении задачи: создал массив указателей на массивы указателей на строки, но компилятор...


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

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

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