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

Непонятный момент в программе с указателями - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Конструктор http://www.cyberforum.ru/cpp-beginners/thread401569.html
Всем доброго времени суток. Пишу программу, которая вычисляет ранг матрицы и выводит транспонированную. Вот код: matr.h: class matr { public: matr(int, int); //matr(); ~matr(); void out() const; void trans();
C++ Как сравнить два текстовых файла? Скажите пожалуйста как сравнить два тхт являются ли их содержания одинаковыми? И если нет то показать где именно ошибка на 3 м тхт файле. пример: true.txt 1100100 1101001 1100001 1101110 1100001 false.txt 1100100 1101011 1100001 1101110 1100001 mistake.txt Mistake is in "_" row! http://www.cyberforum.ru/cpp-beginners/thread401560.html
C++ преобразование матрицы
провести преобразование матрицы А таким образом:положительные элементы заменить на число 2 ,отрицательные -на 1,нулевые -на 3:
Двумерный массив с указателями C++
Здраствуйте. Не получаеться переделать задачу под свою,помогите пожалуйсто. вот пример. #include <iostream.h> #include <conio.h> int Fun_Sum_Kol(int, int, int**, int*); void main() { int **a, i, j, n, m, sum, kol; cout << "\t Input N, M : "; cin >> n >> m;
C++ Табуляция http://www.cyberforum.ru/cpp-beginners/thread401536.html
Добрый вечер, форумчане. Вопрос такой: как можно задав в коде программы, например, рисунок: ^ / | \ / | \ сделать так, что бы в консольном окне он выдавал его несколько раз, причем и в длину, типо:
C++ Странное поведение map в объкт-функции есть класс class writer { map <string, list<string> > &dat; list<string> &all; bool flag; //true = familiya public: writer( map <string, list<string> > &dat_, list<string> &all_): dat(dat_), all(all_) подробнее

Показать сообщение отдельно
Heidel
110 / 110 / 7
Регистрация: 11.10.2011
Сообщений: 647

Непонятный момент в программе с указателями - C++

07.12.2011, 21:55. Просмотров 243. Ответов 8
Метки (Все метки)

Для вывода строки по элементам была написана программа, в которой применялся указатель

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
 
void f (char v[])
{
    for (char* p = v; *p!=0; p++)
    {
        std::cout << *p;
    }
    std::cout << "\n";
}
 
int main ()
{
    char str[] = "Grace missed him so badly that she almost pined away to nothing.";
    f (str);
    
    return 0;
}
но в функции была сделана ошибка, и вместо строки
C++
1
std::cout << *p;
оказалось написано
C++
1
std::cout << p;
а программа целиком соотвественно выглядела таким образом
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
 
void f (char v[])
{
    for (char* p = v; *p!=0; p++)
    {
        std::cout << p;
    }
    std::cout << "\n";
}
 
int main ()
{
    char str[] = "Grace missed him so badly that she almost pined away to nothing.";
    f (str);
    
    return 0;
}
Из того, что я знаю об указателях, я бы предположила, что она должна выводить адреса всех символов массива, но вместо этого она выводит строку текста в цикле, в каждой итерации отрубая по одной букве сначала:

Grace missed him so badly that she almost pined away to nothing.race missed him
so badly that she almost pined away to nothing.ace missed him so badly that she
almost pined away to nothing.ce missed him so badly that she almost pined away t
o nothing.e missed him so badly that she almost pined away to nothing. missed hi
m so badly that she almost pined away to nothing.missed him so badly that she al
most pined away to nothing.issed him so badly that she almost pined away to noth
ing.ssed him so badly that she almost pined away to nothing.sed him so badly tha
t she almost pined away to nothing.ed him so badly that she almost pined away to
nothing.d him so badly that she almost pined away to nothing. him so badly that
she almost pined away to nothing.him so badly that she almost pined away to not
hing.im so badly that she almost pined away to nothing.m so badly that she almos
t pined away to nothing. so badly that she almost pined away to nothing.so badly
that she almost pined away to nothing.o badly that she almost pined away to not
hing. badly that she almost pined away to nothing.badly that she almost pined aw
ay to nothing.adly that she almost pined away to nothing.dly that she almost pin
ed away to nothing.ly that she almost pined away to nothing.y that she almost pi
ned away to nothing. that she almost pined away to nothing.that she almost pined
away to nothing.hat she almost pined away to nothing.at she almost pined away t
o nothing.t she almost pined away to nothing. she almost pined away to nothing.s
he almost pined away to nothing.he almost pined away to nothing.e almost pined a
way to nothing. almost pined away to nothing.almost pined away to nothing.lmost
pined away to nothing.most pined away to nothing.ost pined away to nothing.st pi
ned away to nothing.t pined away to nothing. pined away to nothing.pined away to
nothing.ined away to nothing.ned away to nothing.ed away to nothing.d away to n
othing. away to nothing.away to nothing.way to nothing.ay to nothing.y to nothin
g. to nothing.to nothing.o nothing. nothing.nothing.othing.thing.hing.ing.ng.g..

Объясните, пожалуйста, почему так происходит, не могу понять?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru