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

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

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

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

11.11.2012, 23:07. Просмотров 477. Ответов 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;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.11.2012, 23:07
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Указатель куда указывает? (C++):

Узнать, куда указывает strstr - C++
Здравствуйте, у меня есть массив. С помощью STRSTR я проверяю его на наличие строки, но как мне на каком по счету элементе массива...

Узнать указывает ли указатель - C++
Доброго времени суток. Постановка задачи такова: есть указатель на массив, надо удалить массив, а потом создать новый, но не ясно указывает...

Указатель не указывает на CHAR - C++
Доброго всем здравия, совсем запутался, написал примитивный код, а он гад не работает. Как такое возможно? #include "stdafx.h" ...

Указатель указывает на несуществующую переменную, но выводит значение - C++
Вот такой пример нашел в учебнике. В описании сказано, что локальные переменные функции SomeFunction() удаляются сразу после завершения...

Узнать номер элемента массива на который указывает указатель - C++
Может вопрос глупый но тока что об этом задумался! Можно ли узнать номер элемента массива на который указывает указатель не используя...

Как создать копию объекта на который указывает указатель - C++
У меня есть указатель класс Student, который хранит информацию о студентах(имя, фамилию, телефон) в строках в стиле Си, то есть private...

8
Герц
524 / 341 / 4
Регистрация: 05.11.2010
Сообщений: 1,077
Записей в блоге: 1
11.11.2012, 23:10 #2
Как это ты с *start на &start перескочил сразу?
start != end
0
Croessmah
Эксперт CЭксперт С++
13420 / 7574 / 855
Регистрация: 27.09.2012
Сообщений: 18,651
Записей в блоге: 3
Завершенные тесты: 1
11.11.2012, 23:11 #3
не надо тогда разыменовывать указатели. Просто
C++
1
while(start!=end)
0
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,926
Записей в блоге: 1
11.11.2012, 23:11 #4
во-первых, у тебя ни start ни end не изменяются во втором цикле, следовательно он бесконечен. Т.к. *start не равен нулю(*end=0)
Во-вторых, я не понял, что тебе надо. Конец строки ты нашёл правильно. А что ты делаешь во втором цикле - бред какой-то. у меня даже догадок нет, что ты пытался сделать. Объясни.
0
Герц
524 / 341 / 4
Регистрация: 05.11.2010
Сообщений: 1,077
Записей в блоге: 1
11.11.2012, 23:12 #5
Во втором цикле у него end--; есть.
0
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,926
Записей в блоге: 1
11.11.2012, 23:12 #6
Цитата Сообщение от Герц Посмотреть сообщение
на &start перескочил сразу?
у него нет нигде &start
0
Croessmah
Эксперт CЭксперт С++
13420 / 7574 / 855
Регистрация: 27.09.2012
Сообщений: 18,651
Записей в блоге: 3
Завершенные тесты: 1
11.11.2012, 23:13 #7
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
во-первых, у тебя ни start ни end не изменяются во втором цикле
как? у него же end--

Добавлено через 13 секунд
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
у него нет нигде &start
в коментариях есть
0
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,926
Записей в блоге: 1
11.11.2012, 23:13 #8
Цитата Сообщение от Герц Посмотреть сообщение
Во втором цикле у него end--; есть.
А теперь вижу. Ну да while (ыефке!=утв)
0
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;
}
Я пытаюсь реализовать программу, которая будет из строки убирать наименьшее количество символов чтобы это получился полиндром. Поэтапно пытаюсь это реализовать. Пока я рассматриваю только данный вариант полиндрома, если смогу реализовать для него, то и для любых других тоже смогу
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.11.2012, 23:14
Привет! Вот еще темы с ответами:

Как изменить тип объекта, на который указывает указатель? - C++
Есть абстрактный базовый класс и два производных: class Base { protected: int A; }; class Child1 : public Base {

Как вывести адресс на который указывает указатель типа char*. - C++
Эта программа : #include &lt;iostream&gt; using namespace std; int main() { int a={1, 2, 3, 4}; int* g=a; cout&lt;&lt;g&lt;&lt;endl; ...

Программа сначала перезаписывает 100 байт, на которые указывает указатель, а затем освобождает память - C++
Читаю уроки по C++ на форуме, почему то автор не хочет все нормально писать, в гугле ничего нормального не нашел, вот зачем в этой...

Если указатель хранит адрес ячейки памяти, на которую он указывает, то почему тогда в моем экспериментальном коде такой результат? - C++
Добрый день! Вот второй день разбираюсь с указателями и ссылками, и всё равно не могу заполнить пробелы. Объясните, пожалуйста. Если...


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

Или воспользуйтесь поиском по форуму:
9
Yandex
Объявления
11.11.2012, 23:14
Ответ Создать тему
Опции темы

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