Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.01.2016, 18:53   #1
Мой повелитель
Пользователь
 
Аватар для Мой повелитель
 
Регистрация: 04.01.2016
Сообщений: 93
По умолчанию объясните что значит эта строка

Код:
int main() {
double **p = 0;
*( *( p = new double* ) = new double ) = 2;


Код:
*( *( p = new double* ) = new double ) = 2;
Мой повелитель вне форума Ответить с цитированием
Старый 09.01.2016, 19:21   #2
Croessmah
Вредный кошак
Участник клуба
 
Аватар для Croessmah
 
Регистрация: 14.10.2012
Сообщений: 1,159
По умолчанию

Эта строка означает "Ай какой говнокод".

Ну и в переносном смысле
Код:
p = new double* ;
*p = new double ;
**p = 2 ;
Croessmah вне форума Ответить с цитированием
Старый 09.01.2016, 19:27   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Бздец конечно, но смысл (если не ошибаюсь) таков:
Создается указатель, в котором размещается второй указатель, который указывает на ячейку памяти, которой присваивается двойка.
Аналог:
Код:
double **p = new double*;
*p=new double;
**p=2;
Двойной указатель...
Цитата:
Эта строка означает "Ай какой говнокод".
Ну не... Это может быть обфускация...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.01.2016, 19:35   #4
Croessmah
Вредный кошак
Участник клуба
 
Аватар для Croessmah
 
Регистрация: 14.10.2012
Сообщений: 1,159
По умолчанию

Цитата:
Это может быть обфускация...
Слабо как-то он обфусцирует.
Ну и задача обфускатора "наговнокодить" так, чтобы глаз человеческий вытек
Croessmah вне форума Ответить с цитированием
Старый 09.01.2016, 19:52   #5
jura_k
gamer
Участник клуба
 
Аватар для jura_k
 
Регистрация: 09.05.2015
Сообщений: 1,529
По умолчанию

я такое видел в книжке по С под "дос". "указатель на указатель" называется.

Код:
   int aa, ab;
   char da [] = "String of Letters in Different Registers.";
   char db [10] = {1, 3, -5, 7, 9, 0, 22, 4, 6, 8};
   char *ea;
   int *ga;
   int **ha;

   aa = 7;
   ga = &aa;
   ha = &ga;
   printf ("aa = %i, ga = %p, ha = %p.\n", aa, ga, ha);
   (*ga)++;
   printf ("aa = %i, ga = %p, ha = %p.\n", aa, ga, ha);
   **ha = 12;
   printf ("aa = %i, ga = %p, ha = %p.\n", aa, ga, ha);
мой канал на Ютубе: youtube.com/@games-zz3ju/videos/
мой канал на Рутубе: rutube.ru/channel/31423139/videos/
В ожидании Кеши...

Последний раз редактировалось Stilet; 09.01.2016 в 20:55.
jura_k вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Что значит эта ошибка? pruf C# (си шарп) 1 16.09.2011 12:21
Что значит эта конструкция?! Viconte JavaScript, Ajax 1 12.09.2010 21:07
что значит эта строка? marselik Общие вопросы C/C++ 6 11.03.2010 19:17
Объясните, что значит каждая строка в программе *natali* Помощь студентам 5 07.11.2009 15:17