Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Как правильно работать с массивами

Ответить
Настройки темы
C/C++ - Как правильно работать с массивами

Новый участник


Сообщения: 5
Благодарности: 0

Профиль | Отправить PM | Цитировать


Я новичек изучаю C++
У меня такой вопрос: как сначала вычеслить размер массива а потом его создать с вычесленным размером?
int tmp = 2;
const int tmp2 = tmp;
int tmp3[tmp2];
Вроде все логично но компилятор ругается
Что делаю не правильно?

Отправлено: 16:46, 01-02-2008

 

Новый участник


Сообщения: 5
Благодарности: 0

Профиль | Отправить PM | Цитировать


Большое спасибо всем разобрался.
Оказывается нужно динамически выделять память.
Я так понял что компилятор не высчитывает размер, а ему он нужен сразу вот в чем моя ошибка.

Отправлено: 00:56, 06-02-2008 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для perfomanse

Новый участник


Сообщения: 3
Благодарности: 0

Профиль | Отправить PM | Цитировать


Подскажите пожалуйста как из массива e[6]={0.7,1,1.2,1.6,2.1,2.2} с помощью функции rand() выбрать случайно только одно значение?
пробовала вот так:
E1=rand()%e[6]; а оно пишет: Illegal use of floating point.
что делать, подскажите!!!!!!! Очень срочно надо!!!

Отправлено: 13:03, 03-07-2010 | #12


Аватара для Drongo

Будем жить, Маэстро...


Сообщения: 6694
Благодарности: 1393

Профиль | Сайт | Отправить PM | Цитировать


Цитата perfomanse:
E1=rand()%e[6]; а оно пишет: Illegal use of floating point. »
Диапазон задан не верно, не массив с идексом задаёт диапазон, а индекс.

Код: Выделить весь код
#include <iostream.h>
#include <ctime>
#include <conio.h>

void main()
{
   float e[6] = {0.7, 1, 1.2, 1.6, 2.1, 2.2};
   srand(time(0));
   int E1 = rand() % 6;
   cout<<"Random e["<<E1<<"] = "<<e[E1]<<endl<<endl;

   for(int i = 0; i < 6; i++)
      cout<<"array["<<i<<"] = "<<e[i]<<endl;
  
   getch();
}
//---------------------------------------------------------------------------

-------
Правильная постановка вопроса свидетельствует о некотором знакомстве с делом.
3нание бывает двух видов. Мы сами знаем предмет — или же знаем, где найти о нём сведения.
[Quick Killer 3.0 Final [OSZone.net]] | [Quick Killer 3.0 Final [SafeZone.cc]] | [Парсер логов Gmer] | [Парсер логов AVZ]

http://tools.oszone.net/Drongo/Userbar/SafeZone_cc.gif


Отправлено: 20:19, 03-07-2010 | #13


ИО Капитана Очевидности


Contributor


Сообщения: 5387
Благодарности: 1105

Профиль | Отправить PM | Цитировать


Цитата oRaVeNo:
1. Вычеслить размер могу. Заношу размер в tmp;
2. Размер массива должен быть константой, могу обьявляю const int tmp2 = tmp; »
Значения констант должны быть определены до запуска программы. Почему? Да потому что это константы

Если же надо сначала ввести (в запущенной программе) значение tmp,*а потом создать массив, нужно использовать динамические массивы, которые создаются совсем иначе.
В большинстве сред разработки уже есть классы-шаблоны для безопасной работы с динамическими массивами. Например vector из библиотеки STL или DynamicArray из Borland C++ Builder

-------
Самое совершенное оружие, которым забиты арсеналы богатых и процветающих наций, может легко уничтожить необразованного, больного, бедного и голодного. Но оно не может уничтожить невежество, болезнь, нищету и голод. (Фидель Кастро)

Почему всех осужденных за измену Родине при Сталине реабилитировали при Горбачёве по отсутствию состава преступления? Потому что при Горбачёве измену Родине перестали считать преступлением.


Отправлено: 06:41, 06-07-2010 | #14



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Как правильно работать с массивами

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Драйвер экрана nv4 disp прекратил правильно работать Alex-furer Видеокарты 31 15-08-2013 11:09
C/C++ - [решено] Лабораторная. Работа с массивами Artem-Samsung Программирование и базы данных 6 01-06-2009 21:30
[решено] скачал как бы образ фильма в папках,не знаю,как правильно записать illusionmgs Видео и аудио: обработка и кодирование 9 12-09-2008 01:13
Perl. Работа с массивами. simon171078 Вебмастеру 2 09-01-2007 16:19




 
Переход