информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Spanning Tree Protocol: недокументированное применениеСтрашный баг в Windows
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 700 с лишним git-серверов пострадало... 
 От повторного пришествия Шаи-Хулуда... 
 Крупный сбой Azure и других сервисов... 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Не мог бы ты указать в какой главе именно? 29.08.01 18:54  Число просмотров: 869
Автор: Даун Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Забавно не в плане "супердинамических массивов" конечно, а в создании имен переменных "на лету"
Вероятно, сие возможно тока в интерпретаторах - Perl eval(), Python exec() и т.п.
А как это планируется в C++ - слабо представляется.
такое как //char *massiv+i;// не слопает компилятор, какие бы там операторы не перегружались.
Если же это возможно - интересно взгянуть!
<programming>
Супер динамическое выделение памяти под массив 28.08.01 17:14  
Автор: dinamo Статус: Незарегистрированный пользователь
<"чистая" ссылка>
char *mas;
mas=new chat[SIZE];
это как вы понимаите мы просто динамически выделели размер массива
а мне необходимо кроме этого выделить динамически и имя массива
имена скажем такого плана massiv0, massiv1, massiv2, massiv3, massiv4, massiv5, massiv6
что то подобное можно сделась в VB (как мне кажется) ну а как насчет С/Visual С++
схематический текст программы
cin>>x;
for(int i=0;i<x;i++)
{
char *massiv+i;
massiv+i=new char[SIZE];
}
возможно ли такой ???
Вопрос на засыпку всем знатокам с++ (более правельная формулировка вопроса) 28.08.01 23:48  
Автор: dinamo Статус: Незарегистрированный пользователь
<"чистая" ссылка>
схематически это должно выглядить так
i=0;
cin>>x;
if(x)break;
massiv+i;//тут у него название massiv1
...
i++;
cin>>x;
if(x)break;
massiv+i;//тут у него название massiv2
i++;
...
cin>>x;
if(x)break;
massiv+i; //тут у него название massiv3
i++;
...

т.е. программа в любой момент может завершится и число динамических массивов точно неизвестно
т.е. необходим ПРИНЦИП ФОРМИРОВАНИЯ ИМЕН ПЕРЕМЕННЫХ ИЛИ МАССИВОМ
чтобы их имена состояли из 2-х частей 1)ИМЯ 2)ЧИСЛО
т.е. massiv1, massiv2, massiv3, massiv4
ну так как такая задача решима или нет???
Вопрос на засыпку не знатоку с++ 30.08.01 01:19  
Автор: kabanchik Статус: Незарегистрированный пользователь
<"чистая" ссылка>
2 All :
Приколисты хреновы ;-)))

атору :
а можешь объяснить зачем тебе "динамическая" переменная и как ты ее применять будешь, т.е. с чем и как ты ее "есть" собираешься? типа -
if (exist(massive_X))
     do_something();
else
    do_anything();

---
приблизительно такое получается что ли?
если сумеешь ответить на вопрос и объяснишь каким образом ты ее использовать будешь, то будь уверен, что найдутся 1000, которые тут же приведут тебе 1000 примеров. объясни механизм "if (exist(massive_X))".
посторайся понять чего тебе надо.

P.S. не обижайся конечно, но это не вопрос на засыпку. это даже не вопрос, а скорее всего анекдот.

2 XR:
того кто создал ВАСИК пристрелить надо. народу мозги мутит.
Все-таки этому есть применение - в компиляторах. 30.08.01 07:04  
Автор: Бяша <Biasha> Статус: Member
<"чистая" ссылка>
Да. У Страуструпа в книге даже как часть примера. 29.08.01 02:35  
Автор: Бяша <Biasha> Статус: Member
<"чистая" ссылка>
Не мог бы ты указать в какой главе именно? 29.08.01 18:54  
Автор: Даун Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Забавно не в плане "супердинамических массивов" конечно, а в создании имен переменных "на лету"
Вероятно, сие возможно тока в интерпретаторах - Perl eval(), Python exec() и т.п.
А как это планируется в C++ - слабо представляется.
такое как //char *massiv+i;// не слопает компилятор, какие бы там операторы не перегружались.
Если же это возможно - интересно взгянуть!
Не мог бы ты указать в какой главе именно? 30.08.01 07:09  
Автор: Бяша <Biasha> Статус: Member
<"чистая" ссылка>
3.1.3 Таблица имен
Короче там, где про калькулятор. Он ещё долго потом улучшает в следующих главах.

> А как это планируется в C++ - слабо представляется.
> такое как //char *massiv+i;// не слопает компилятор, какие
> бы там операторы не перегружались.
> Если же это возможно - интересно взгянуть!

Ну, я имел в виду нечто такое:
#include <iostream.h>
struct CName { int a; };
int& operator+(CName &name, int a){ return name.a; }
int main()
{
	int i = 1;
	CName name = {2};
	name+i = 3; // о чём я собственно и говорил
	cout << "i="<< i << " name.a=" << name.a;
	return 0;
}

---
В класс можно добавить ещё char* и поля next, prev. Плюсиком по ним какой-то поиск делать, и выдавать нужный инт.
ну а более конкретно??? 29.08.01 10:54  
Автор: dinamo Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Может я и не большой знаток... 29.08.01 01:07  
Автор: Хунтер Статус: Незарегистрированный пользователь
<"чистая" ссылка>
После того, как твоя прога на сипипи откомпилится, никакихименпеременных в ней не останется. Слова "massiv" ты в ней не найдешь, поэтому сама проблема динимического выделения переменнымименнесостоятельна. Забудь ты васик, тут все по-другому. Делай как тебе XR написал.
;))) 28.08.01 17:59  
Автор: XR <eXtremal Research> Статус: The Elderman
<"чистая" ссылка>
> char *mas;
> mas=new chat[SIZE];
> это как вы понимаите мы просто динамически выделели размер
> массива
> а мне необходимо кроме этого выделить динамически и имя
> массива
> имена скажем такого плана massiv0, massiv1, massiv2,
> massiv3, massiv4, massiv5, massiv6
> что то подобное можно сделась в VB (как мне кажется) ну а
> как насчет С/Visual С++
> схематический текст программы
> cin>>x;
> for(int i=0;i<x;i++)
> {
> char *massiv+i;
> massiv+i=new char[SIZE];
> }
> возможно ли такой ???


Чаво токо не услышишь от пионеров_и_школьников подсевших на ВАСИК :)))


char** array=new char* [x];
for(int i=0;i<x;i++)
array[i] = new char [SIZE];
обращаться к массиву так:

array[i][j];


Ну ты сравнил!!! VB и VC ;-)))))))))))))))))))))))). 28.08.01 17:24  
Автор: Glory <Mr. Glory> Статус: Elderman
<"чистая" ссылка>
> что то подобное можно сделась в VB (как мне кажется) ну а
> как насчет С/Visual С++
> схематический текст программы
> cin>>x;
> for(int i=0;i<x;i++)
> {
> char *massiv+i;
> massiv+i=new char[SIZE];
> }
> возможно ли такой ???
Ты представляешь что при этом получится? Во-первых когда ты пишешь имя_одной_переменной + имя_другой, получается сумма их значений а не конкатенация имен ;-))))). поэтому char *massiv+i; - вообще ахинея которую компилер не пропустит. massiv+i = new char[SIZE]; тоже не прокатит, при определенных усилиях конечно можно заставить нечто подобное работать, только результат будет такой, что лучше б он не работал ;-))). Фактически память размером size выделится под указатель на область памяти, начинающуюся с адреса [massiv+i];А что получится в результате - догадайся сам ;-)).
P.S. я конечно понимаю что смех продлевает жизнь, но не надо так больше меня смешить ;-))).
Ну уж нет..! 29.08.01 02:45  
Автор: Бяша <Biasha> Статус: Member
<"чистая" ссылка>
> > что то подобное можно сделась в VB (как мне кажется)
> ну а
> > как насчет С/Visual С++
> > схематический текст программы
> > cin>>x;
> > for(int i=0;i<x;i++)
> > {
> > char *massiv+i;
> > massiv+i=new char[SIZE];
> > }
> > возможно ли такой ???

> Ты представляешь что при этом получится? Во-первых когда ты
> пишешь имя_одной_переменной + имя_другой, получается сумма
> их значений а не конкатенация имен ;-))))). поэтому char
Не факт...
Например, он определит сложение имени с интом, выдающее ссылку на что-то.

> P.S. я конечно понимаю что смех продлевает жизнь, но не
> надо так больше меня смешить ;-))).
Конечно это всё глупость, но заставить это работать (даже правильно работать) можно! :)
Ну уж нет..! 29.08.01 11:47  
Автор: Glory <Mr. Glory> Статус: Elderman
<"чистая" ссылка>
> Не факт...
> Например, он определит сложение имени с интом, выдающее
> ссылку на что-то.
Я имел ввиду в общем случае, понятно можно "+" пергрузить чтоб он че угодно там делал.

>
> > P.S. я конечно понимаю что смех продлевает жизнь, но
> не
> > надо так больше меня смешить ;-))).
> Конечно это всё глупость, но заставить это работать (даже
> правильно работать) можно! :)
Так я и сказал что заставить это работать можно. Только работать это будет так, что лучше б не работало вообще.
Ну ты сравнил!!! VB и VC ;-)))))))))))))))))))))))). 28.08.01 18:48  
Автор: 1 Статус: Незарегистрированный пользователь
<"чистая" ссылка>
смейся смеяся!!!
просто тебе надо быть более внимательным при прочтении вопроса.
это был не просто текст программы.
а как там сказанно " схематический текст программы "
и я прекрасно понимал что она даже близко в таком виде работать не будет!!!
надеюсь ты понимаеш разницу !!!???
Ни @#$а себе схемка!! ;-)). Посмотри то что тебе XR накатал и сравни со своей схемой. Похоже? ;-)). 28.08.01 19:55  
Автор: Glory <Mr. Glory> Статус: Elderman
<"чистая" ссылка>
> и я прекрасно понимал что она даже близко в таком виде
> работать не будет!!!
Так нахрена такая схема, если она даже близко работать не будет? Если она не верна в корне ((c) В. И. Ленин). XR тебе написал правильное решение твоей проблемы, но дело в том, что с твоей схемой оно ничего общего не имеет. Поэтому я и смеялся столько ;-))))))). Более разумным было бы с твоей стороны вообще не предлагать никаких схем а просто задать вопрос.
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2025 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach