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

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

Войти
Регистрация
Восстановить пароль
 
dimcoder
Полярный
458 / 431 / 67
Регистрация: 11.09.2011
Сообщений: 1,129
#1

Указатели и непонятки в одном флаконе! - C++

30.09.2011, 16:43. Просмотров 303. Ответов 6
Метки нет (Все метки)

Здравствуйте. Решил поднять новую тему про указатели. Да, литературу читал, но нихрена не понятно. Конечно, базовые концепции - не оч трудно, но работа с многомерными массивами - это п****ц. Сорри, просто мозги уже кипят.
Короче вот код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream.h>
#include <conio.h>
 
main ()
{
   int a[2][2][2] ={{{1,2},{4,5}},{{1,2}}};
   int *(*ptr)[2];
 
   ptr[0] = a[0][0];
   ptr[1] = a[0][1];
 
   cout << "a[0][0] = " << a[0][0] << " == ptr[0] = " << ptr[0]
    << endl << endl;
 
   getch();
 
   return 0;
}
Выдаёт ошибку "LValue required" в 9 и 10 строке. А почему? ptr[0] - указатель. a[0][0] - тоже указатель. Но всё же присвоение не прокатывает. Итак, я хочу услышать не только правильное исправлени, но и ОБЪЯСНЕНИЕ ДЛЯ ЧАЙНИКОВ КАК ЭТО РАБОТАЕТ.

P.S. Повторюсь, мне не нужна просто моя исправленная программа, мне нужно объяснение!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.09.2011, 16:43     Указатели и непонятки в одном флаконе!
Посмотрите здесь:

Хочу EXE и DLL в одном флаконе. Не получается. - C++
Хочу в EXE файл добавить функцию на экспорт. Типа EXE и DLL в одном флаконе. Но глючит как-то все. Выяснилось, что при загрузке библиотеки...

Указатели на указатели с числами. Почему можно присвоить число в 4-ый элемент, если массив из 2 элементов? - C++
Есть массив int **mas; mas=new int*; // выделил место под пять строк, верно ? mas=new int;// выделил для первой строки матрицы два...

Указатели, такие указатели - C++
char str=&quot;Kak&lt;dela&gt;rab?&quot;; char *p; p=str; for(int i=0;p;i++) p=toupper(p); cout&lt;&lt;&amp;str&lt;&lt;endl;//ПОЧЕМУ ЗДЕСЬ ВЫВОДИТ ВСЮ СТРОКУ, А...

Непонятки со списком - C++
Нашёл код в интернете и немного не понимаю его в некоторых местах. Объясните мне пожалуйста, зачем в коде вот тут: ...

Непонятки с указателями - C++
#include &lt;iostream&gt; using namespace std; int is_order(const int* array) { for(const int* z = array; z &lt; array +...

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrGluck
Модератор
Эксперт CЭксперт С++
7160 / 4326 / 630
Регистрация: 29.11.2010
Сообщений: 11,750
30.09.2011, 16:49     Указатели и непонятки в одном флаконе! #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <conio.h>
 
int main ()
{
   int a[2][2][2] ={{{1,2},{4,5}},{{1,2}}};
   int *ptr[2];
 
   ptr[0] = a[0][0];
   ptr[1] = a[0][1];
 
   std::cout << "a[0][0] = " << a[0][0] << " == ptr[0] = " << ptr[0]
        << std::endl << std::endl;
 
   getch();
 
   return 0;
}
Неправильно объявлен массив указателей
Петррр
5946 / 3383 / 336
Регистрация: 28.10.2010
Сообщений: 5,927
30.09.2011, 16:52     Указатели и непонятки в одном флаконе! #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
 
using namespace std;
 
int main ()
{
   int a[2][2][2] ={{{1,2},{4,5}},{{1,2}}};
   int *ptr[2];
   ptr[0] = a[0][0];
   ptr[1] = a[0][1];
   cout << "a[0][0] = " << a[0][0] << "\n ptr[0] = " << ptr[0]
        << endl << endl;
   system("pause");
   return 0;
}
-=ЮрА=-
Заблокирован
Автор FAQ
30.09.2011, 16:52     Указатели и непонятки в одном флаконе! #4
Цитата Сообщение от dimcoder Посмотреть сообщение
int *(*ptr)[2];
- это указатель на строку из двух элементов а не отдельный её элемент
от компилятора идёт такое сообщение error C2440: '=' : cannot convert from 'int [2]' to 'int *[2]'

Цитата Сообщение от dimcoder Посмотреть сообщение
ptr[0] = a[0][0];
*ptr[1] = a[0][1];
Петррр
30.09.2011, 16:52
  #5

Не по теме:

Опоздал

-=ЮрА=-
30.09.2011, 16:56
  #6

Не по теме:

Цитата Сообщение от Петррр Посмотреть сообщение
Не по теме:
Опоздал
- я вообще наивно полагал что первым успею ответить
PS:Когда раздел С/С++ глядят сразу 200 пар глаз сложно вообще на первой странице успеть отпостить

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.09.2011, 17:22     Указатели и непонятки в одном флаконе!
Еще ссылки по теме:

Непонятки с fread - C++
Добрый день. Столкнулся с такой проблемой: читаю обычный текстовый файл, однако помимо его содержания мне выдает еще ==**** в конце (причем...

Непонятки по ссылкам - C++
Доброго времени суток! Помогите, пожалуйста разобраться. Изучаю ссылки и мне кое-что не понятно. Допустим мы объявили функцию: ...

Непонятки со scanf - C++
char str_check; //строка для функции &quot;check&quot;, которая проверяет введенные данные { scanf(&quot;%s&quot;,&amp;str_check); } выскакивает...

Непонятки с наследованием - C++
Будьте добры, проясните пожалуйста такой момент: Есть код: #include &lt;iostream&gt; using namespace std; class Counter { ...


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

Или воспользуйтесь поиском по форуму:
dimcoder
Полярный
458 / 431 / 67
Регистрация: 11.09.2011
Сообщений: 1,129
30.09.2011, 17:22  [ТС]     Указатели и непонятки в одном флаконе! #7
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
- это указатель на строку из двух элементов а не отдельный её элемент
от компилятора идёт такое сообщение error C2440: '=' : cannot convert from 'int [2]' to 'int *[2]'
Я думал, что енто означает, что объявляю массив указателей ptr из 2 элементов, каждый из которых содержит указатель на (int *), а не int. Поэтому с этого места можно поподробнее. Короче опять нихрена не понятно...
Ну и если мы заговорили о строках, то вот вам попутный вопрос:
C++
1
2
char *string;
*string = "smth"
и "smth" запишится в случайную область памяти, что может привести к неприятным последствиям или эта запись эквивалентна:
C++
1
char string[10] = "smth";
Yandex
Объявления
30.09.2011, 17:22     Указатели и непонятки в одном флаконе!
Ответ Создать тему
Опции темы

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