Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
aleksand
21 / 9 / 2
Регистрация: 18.06.2011
Сообщений: 185
#1

Указатель куда указывает? - C++

11.11.2012, 23:07. Просмотров 448. Ответов 8
Метки нет (Все метки)

Вопрос в комментарии к программе
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
int main()
{
    int count = 0;
    char str[100] = "atutau";
    char *start, *end;
    start = str; // левый индекс массива
    end = str;
    do
    {
        end++;
    }while(*end); // правый индекс массива
 
    do
        {
            end--;
            count++;
            printf("%d\n",count);
        }while(*start!=*end); //как сделать так, чтобы цикл остановился, когда у нас указатели указывают именно на один и тот же индекс массива, а не а одно и тоже значение как сейчас. Я пробовал сделать так &start!=&end, но это не помогло. Помогите пожалуйста
 
    getchar();
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.11.2012, 23:07     Указатель куда указывает?
Посмотрите здесь:

C++ Куда будет указывать указатель в std::map<string,pointer *>?
C++ Как вывести адресс на который указывает указатель типа char*.
Сделать указатель на указатель NULL C++
C++ Узнать указывает ли указатель
C++ Указатель указывает на несуществующую переменную, но выводит значение
Как изменить тип объекта, на который указывает указатель? C++
C++ Если указатель хранит адрес ячейки памяти, на которую он указывает, то почему тогда в моем экспериментальном коде такой результат?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Герц
523 / 340 / 4
Регистрация: 05.11.2010
Сообщений: 1,077
Записей в блоге: 1
11.11.2012, 23:10     Указатель куда указывает? #2
Как это ты с *start на &start перескочил сразу?
start != end
Croessmah
Модератор
Эксперт CЭксперт С++
12730 / 7190 / 802
Регистрация: 27.09.2012
Сообщений: 17,738
Записей в блоге: 2
Завершенные тесты: 1
11.11.2012, 23:11     Указатель куда указывает? #3
не надо тогда разыменовывать указатели. Просто
C++
1
while(start!=end)
Kuzia domovenok
1888 / 1743 / 117
Регистрация: 25.03.2012
Сообщений: 5,916
Записей в блоге: 1
11.11.2012, 23:11     Указатель куда указывает? #4
во-первых, у тебя ни start ни end не изменяются во втором цикле, следовательно он бесконечен. Т.к. *start не равен нулю(*end=0)
Во-вторых, я не понял, что тебе надо. Конец строки ты нашёл правильно. А что ты делаешь во втором цикле - бред какой-то. у меня даже догадок нет, что ты пытался сделать. Объясни.
Герц
523 / 340 / 4
Регистрация: 05.11.2010
Сообщений: 1,077
Записей в блоге: 1
11.11.2012, 23:12     Указатель куда указывает? #5
Во втором цикле у него end--; есть.
Kuzia domovenok
1888 / 1743 / 117
Регистрация: 25.03.2012
Сообщений: 5,916
Записей в блоге: 1
11.11.2012, 23:12     Указатель куда указывает? #6
Цитата Сообщение от Герц Посмотреть сообщение
на &start перескочил сразу?
у него нет нигде &start
Croessmah
Модератор
Эксперт CЭксперт С++
12730 / 7190 / 802
Регистрация: 27.09.2012
Сообщений: 17,738
Записей в блоге: 2
Завершенные тесты: 1
11.11.2012, 23:13     Указатель куда указывает? #7
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
во-первых, у тебя ни start ни end не изменяются во втором цикле
как? у него же end--

Добавлено через 13 секунд
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
у него нет нигде &start
в коментариях есть
Kuzia domovenok
1888 / 1743 / 117
Регистрация: 25.03.2012
Сообщений: 5,916
Записей в блоге: 1
11.11.2012, 23:13     Указатель куда указывает? #8
Цитата Сообщение от Герц Посмотреть сообщение
Во втором цикле у него end--; есть.
А теперь вижу. Ну да while (ыефке!=утв)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.11.2012, 23:14     Указатель куда указывает?
Еще ссылки по теме:

Программа сначала перезаписывает 100 байт, на которые указывает указатель, а затем освобождает память C++
Узнать, куда указывает strstr C++
Как создать копию объекта на который указывает указатель C++
Указатель на указатель заполнение матрицы C++
C++ Указатель не указывает на CHAR

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

Или воспользуйтесь поиском по форуму:
aleksand
21 / 9 / 2
Регистрация: 18.06.2011
Сообщений: 185
11.11.2012, 23:14  [ТС]     Указатель куда указывает? #9
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
во-первых, у тебя ни start ни end не изменяются во втором цикле, следовательно он бесконечен. Т.к. *start не равен нулю(*end=0)
Во-вторых, я не понял, что тебе надо. Конец строки ты нашёл правильно. А что ты делаешь во втором цикле - бред какой-то. у меня даже догадок нет, что ты пытался сделать. Объясни.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <stdio.h>
#include <string.h>
 
void rekurs(char *start, char *end, int count)
{
    if(*start!=*end)
    {
        do
        {
            end--;
            count++;
        }while(*start!=*end);
 
        if(start==end) return;
        else
        {
            start++;
            rekurs(start, end, count);
        }
        printf("%d\n", count);
    }
}
 
int main()
{
    int count = 0;
    char str[100] = "atutau";
    char *start, *end;
    start = str; // левый индекс массива
    end = str;
    do
    {
        end++;
    }while(*end); // правый индекс массива
 
    rekurs(start, end, count);
 
    getchar();
    return 0;
}
Я пытаюсь реализовать программу, которая будет из строки убирать наименьшее количество символов чтобы это получился полиндром. Поэтапно пытаюсь это реализовать. Пока я рассматриваю только данный вариант полиндрома, если смогу реализовать для него, то и для любых других тоже смогу
Yandex
Объявления
11.11.2012, 23:14     Указатель куда указывает?
Ответ Создать тему
Опции темы

Текущее время: 15:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru