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

Запись вектора строк в массив указателей на тип char - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Программа по строкам http://www.cyberforum.ru/cpp-beginners/thread1042215.html
Вычислить арифметическое выражение, заданное в формате строки. Строка может содержать числа, а также операции сложения и вычитания. пример: 6+2-7+3. результат: 4 (sprintf и sscanf использовать нельзя!)
C++ По неведомой причине не работает программа Помогите исправить ошибку #include <clx.h> #pragma hdrstop #pragma argsused #include <iostream.h> #include <iomanip.h> #include <stdlib.h> #include <conio.h> typedef struct tree http://www.cyberforum.ru/cpp-beginners/thread1042214.html
Массив структур. Доступ к вложениям C++
Добрый день.Написал вот такой код для структур,но при компиляции выдает ошибки с оператором доступа(.).В чем дело,не пойму.Помогите пожалуйста. struct krama {struct monitor; struct key; struct mouse;}; struct krama all; struct monitor{
C++ Builder6 Найти номер минимального непарного элемента строки, у которого пятый элемент равняется последнему
Прошу помощи, осталось всего неделя до конца сессии(((( Дан массив R(8,8) Найти номер минимального непарного элемента строки, у которого пятый элемент равняется последнему.
C++ метод золотого сечения http://www.cyberforum.ru/cpp-beginners/thread1042191.html
Нашел на форуме прогу для оптимизации методом золотого сечения.Переделав ее под себя я не пойму вот этого for(i=-1;i<=1;i+=2).зачем вводить этот цикл?объясните пожалуйста.Вот и сам код: #include <stdio.h> #include <conio.h> #include <math.h> #include <locale.h> float f(float x) {return (0.983902)*x*x + (-0.069894)*x + (-0.074655);} int main(void) { int i,m=0;
C++ Эллипс спускается с горки и поднимается в другую Эллипс спускается с горки и поднимается в другую. Вот ссылка на картинку задания: http://webfile.ru/ce8074c574e6d68677c7b1eddb1c0ceb подробнее

Показать сообщение отдельно
DU
1477 / 1053 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
15.12.2013, 18:52     Запись вектора строк в массив указателей на тип char
const int **PP=&P - это неконстантный указатель на неконстантный указатель на const int.

с тайпдефами чуть легче это все воспринимается. вот надеюсь ничего не напутал.
используем тайпдефы + перегрузку и позволяем компилятору решить, что есть что и выдать нам результат:

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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
#include <iostream>
 
typedef int* PtrToInt;
typedef const int* PtrToConstInt;
 
 
void Foo(PtrToInt*)
{
  std::cout << "PtrToInt*" << std::endl;
}
 
void Foo(PtrToConstInt*)
{
  std::cout << "PtrToConstInt*" << std::endl;
}
 
void Foo(const PtrToInt*)
{
  std::cout << "const PtrToInt*" << std::endl;
}
 
void Foo(const PtrToConstInt*)
{
  std::cout << "const PtrToConst*" << std::endl;
}
 
int main ()
{
  {
    int** p = 0;        // неконстантный указатель на неконстантный указатель на инт
    int** const pc = 0; // константный указатель на неконстантный указатель на инт
    Foo(p);
    Foo(pc);
 
    /*
    p = 0;      // ок.  p   - не константа
    *p = 0;     // ok.  p   - указывает на неконстанту
    *(*p) = 0;  // ok. (*p) - указывает на неконстанту
 
    //pc = 0;    // error. pс    - константа
    *pc = 0;     // ok.    pc    - указывает на неконстанту
    *(*pc) = 0;  // ok.    (*pc) - указывает на неконстанту
    */
  }
 
  {
    const int** p = 0;        // неконстантный указатель на неконстантный указатель на const int
    const int** const pc = 0; // константный указатель на неконстантный указатель на const int
    Foo(p);
    Foo(pc);
 
    /*
 
    p = 0;          // ок.     p   - не константа
    *p = 0;         // ok.     p   - указывает на неконстанту
    //*(*p) = 0;    // error. (*p) - указывает на константу
 
    //pc = 0;       // error.  pс   - константа
    *pc = 0;        // ok.     pc   - указывает на неконстанту
    //*(*cp) = 0;   // error. (*pc) - указывает наконстанту
 
    */
  }
 
  {
    int* const * p = 0;        // неконстантный указатель на константный указатель на инт
    int* const * const pc = 0; // константный указатель на константный указатель на инт
    Foo(p);
    Foo(pc);
 
    /*
    p = 0;      // ок.    p    - не константа
    //*p = 0;   // error. p    - указывает на константу
    *(*p) = 0;  // ok.    (*p) - указывает на неконстанту
 
    //pc = 0;    // error. pс    - константа
    //*pc = 0;   // ok.    pc    - указывает на константу
    *(*pc) = 0;  // error. (*pc) - указывает на неконстанту
    */
  }
 
  {
    const int* const * p = 0;        // неконстантный указатель на константный указатель на const int
    const int* const * const pc = 0; // константный указатель на константный указатель на const int
    Foo(p);
    Foo(pc);
 
    /*
    p = 0;        // ок.    p    - не константа
    //*p = 0;     // error. p    - указывает на константу
    //*(*p) = 0;  // error. (*p) - указывает на константу
 
    //pc = 0;    // error. pс    - константа
    //*pc = 0;   // error. pc    - указывает на константу
    //*(*pc) = 0;  // error. (*pc) - указывает на константу
    */
  }
 
  return 0;
}
 
Текущее время: 00:14. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru