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

Подскажите почему указатель работает неправильно? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Класс: строка. Не считывает данные во второй объект класса! http://www.cyberforum.ru/cpp-beginners/thread969811.html
Ребят, собственно, я упускаю, видимо, какую-то важную деталь, только КАКУЮ? В первый объект считывается строка, всё здорово, отображается - все счастливы! Но вот отчего он не предлагает принять данные во второй объект? Буду признательна!:) #include<iostream> #include<iomanip> #include<conio.h> #include<string> using namespace std; class stroka { private: int n;
C++ Что за конструкция? Привет. Что за конструкция такая? Поясните что делает: for( int i=0;i<N;++i ){ ++nCount; } f() - возвратит случайное число от 0 до 10000, Step - шаг определенный. 1000 например. Полный код программы и результат работы здесь. http://ideone.com/vNB9Ow . Не понимаю что делает вот эта часть кода. Поясните пожалуйста. http://www.cyberforum.ru/cpp-beginners/thread969808.html
C++ Ошибка в списках
В функции сравнения Compare не инициализируется переменная y. Зато такая же переменная h инициализируется. В чем ошибка подскажите. #include<iostream> using namespace std; struct List { int i; List *next;
Задача на использование шаблонов C++
Здравствуйте, ребята! Помогите, пожалуйста с задачкой на C++. Вот само задание: Для работы с двумерными массивами арифметических типов данных разработать шаблоны ввода и вывода массива, а также шаблон для решения основной задачи. Поменять местами столбцы по правилу: первый с последним, второй с предпоследним и т.д. Очень нужна помощь! Если не сложно, подпишите комментарии, пожалуйста.
C++ Вывести количество максимальных чисел. Массив http://www.cyberforum.ru/cpp-beginners/thread969804.html
Сначала вводим кол-во чисел в массиве, затем находим кол-во максимальных чисел данной последовательности. Пример: Sample input: 7 1 4 2 5 2 5 3 Sample output: 2 Вот но не получилось. Если можно переделайте пожалуйста и еще одна просьба можно без функции.
C++ С++ задача (исправить ошибку в коде) Помогите не правильно выводится, исправьте пожалуйста должен так выводиться Sample input 1: 9 3 5 1 7 9 0 9 -3 10 Sample output 1: 9 10 9 #include <iostream> using namespace std; подробнее

Показать сообщение отдельно
Nikko12
 Аватар для Nikko12
1 / 1 / 0
Регистрация: 07.06.2013
Сообщений: 162
06.10.2013, 18:13  [ТС]     Подскажите почему указатель работает неправильно?
Вопрос по теме теперь, вернее прошу помошь с реализацией посимвольного вывода.Я думаю (может не прав, поправьте), что для этого мне понадобится массив указателей, где каждый элемент массива указывает на нулевой элемент строки, т.е. указывает на vec[0][0], vec[1][0], vec[2][0]. Проблема в том, что указатели неправильно складываются, т.е. если первый указатель указывает на vec[0][0], то второй должен указывать на vec[0][1], а этого не происходит, почему не понимаю . Вот код:
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
#include <iostream>
#include <time.h>
#include <cstdlib>
#include <vector>
using namespace std;
int main()
{
   srand(time(NULL));
   vector <string> vec;
   char str[10];
   int i,j;
   char *ptr_array;
   char array[10];
   for(j=0;j<10;++j)
   {
       for(i=0;i<10;++i)
       {
           str[i]=char(65+rand()%90);
       }
   vec.push_back(str);
   ptr_array=&vec[j][0];
   array[j]=*ptr_array;
   }
   cout<<endl;
   for(i=0;i<vec.size();++i)
   {
       *ptr_array=array[i];
       for(j=0;j<vec[i].length();++j)
       {
           cout<<*ptr_array++;
       }
       cout<<endl;
   }
   return 0;
}
Подскажите??

Добавлено через 1 час 1 минуту
Вроде получилось:
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 <iostream>
#include <time.h>
#include <cstdlib>
#include <vector>
using namespace std;
void fn_pointer(char *ptr_array,vector <string> vec)
{
     for(int i=0;i<vec.size();++i)
   {
       ptr_array=&vec[i][0];
       for(int j=0;j<vec[i].length();++j)
       {
           cout<<*ptr_array++;
       }
       cout<<endl;
   }
}
int main()
{
   srand(time(NULL));
   vector <string> vec;
   char str[10];
   int i,j;
   char *ptr_array;
   char array[10];
   for(j=0;j<10;++j)
   {
       for(i=0;i<10;++i)
       {
         str[i]=char(65+rand()%25);
       }
   vec.push_back(str);
   ptr_array=&vec[j][0];
   array[j]=*ptr_array;
   cout<<vec[j]<<endl;
   }
   cout<<endl;
   fn_pointer(ptr_array,vec);
   return 0;
}
 
Текущее время: 21:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru