Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
Полярный
 Аватар для dimcoder
477 / 449 / 158
Регистрация: 11.09.2011
Сообщений: 1,156

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

30.09.2011, 16:43. Показов 619. Ответов 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. Повторюсь, мне не нужна просто моя исправленная программа, мне нужно объяснение!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.09.2011, 16:43
Ответы с готовыми решениями:

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

FT232 на 3 функции в одном флаконе
Для командировок мне нужно иметь возможность к USB подключать несколько разных устройств. Конкретно: 1) программировать атмеги 2) 2...

Foreach и BigInteger в одном флаконе
Доброго времени суток! Проблема такая: форич отказывается работать с БигИнтеджером static void Main(string args) ...

6
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
30.09.2011, 16:49
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;
}
Неправильно объявлен массив указателей
0
 Аватар для Петррр
6721 / 3570 / 900
Регистрация: 28.10.2010
Сообщений: 5,937
30.09.2011, 16:52
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;
}
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
30.09.2011, 16:52
Цитата Сообщение от 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];
0
30.09.2011, 16:52

Не по теме:

Опоздал :(

0
30.09.2011, 16:56

Не по теме:

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

0
Полярный
 Аватар для dimcoder
477 / 449 / 158
Регистрация: 11.09.2011
Сообщений: 1,156
30.09.2011, 17:22  [ТС]
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
- это указатель на строку из двух элементов а не отдельный её элемент
от компилятора идёт такое сообщение 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";
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.09.2011, 17:22
Помогаю со студенческими работами здесь

Потоки и указатели, непонятки
Разбираюсь в указателях, у меня есть процедура procedure push(pButton:pointer); ...

Указатели и указатели на указатели, а также типы данных
Недавно начал изучать Си, перешел с Delphi. Много непонятного и пока процесс идет медленно. Накачал литературы, буду изучать) Щас...

Через указатели на указатели посчитать сумму двух чисел и записать в третье
1. Через указатели на указатели посчитать сумму двух чисел и записать в третье. 2. Написать примитивный калькулятор, пользуясь только...

Почему Лафоре использует указатели на указатели, вместо обмена значениями указателей?
Доброго времени суток! Задался теоретическим вопросом. Читал пример из книги Лафоре ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ В C++,...

В matlab есть указатели на переменные или что-нибудь похожее на указатели?
Здравствуйте, в matlab есть указатели на переменные? или что-нибудь похожее на указатели? нужно хранить в объекте информацию: на...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение/ Перевод https:/ / **********/ gallery/ thinkpad-x220-tablet-porn-gzoEAjs . . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru