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

Определение размера одномерного массива - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.67
Olejan_one
1 / 1 / 0
Регистрация: 25.08.2012
Сообщений: 105
Завершенные тесты: 2
25.08.2012, 19:12     Определение размера одномерного массива #1
Добрый день. Необходимо задать размер одномерного массива.
В цикле for стоит переменная - счетчик, которая увеличивается на единицу при определенных условиях.
После всех повторений этого цикла мне необходимо что бы значение этой переменной - счетчика определяло размер моего массива.
например:
for (...)
{
chetchik++;

}
const int size=shetchik;
int array1 [size]

В тот момент, когда я инициализирую этот массив visual studio не определяет (подчеркивает) эту переменную size в квадратных скобках.
Подскажите, может есть какой - нибудь способ, который поможет распознать этот size как константу(я так думаю что программа не понимает что сайз - это константа, которой я присваиваю значение переменной shetchik, т.к. в цикле он изменяется)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Intel~lect
 Аватар для Intel~lect
135 / 124 / 2
Регистрация: 03.07.2012
Сообщений: 355
25.08.2012, 19:17     Определение размера одномерного массива #2
Попробуй для массива динамически выделять память:
C++
1
2
3
int array1 = new int[size];
...
delete [] array1;
Olejan_one
1 / 1 / 0
Регистрация: 25.08.2012
Сообщений: 105
Завершенные тесты: 2
25.08.2012, 20:11  [ТС]     Определение размера одномерного массива #3
Не получается задать динамический размер.
Такая задача:
Необходимо составить программу для систем счисления (от 2 до 36)
пользователь вводит число в десятичной системе и вводит номер системы.
например:
число 350 в 8-ричной системе.
Вот что я написал:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include <iostream>
using namespace std;
int func1 ()
{
    const int size=36;
    char mas1 [size]={' ','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};
 
     char mas2 [size];
     
    
    
    int chislo,sys_shisl,ostatok,chet=0;
    
    
    cout<<"Vvedite chislo=";
    cin>>chislo;
    cout<<"Vvedite sistemy shicltniya=";
    cin>>sys_shisl;
 
    for(int i=0;i<=size-1;i++)
    {
    ostatok=chislo%sys_shisl;
    mas2[i]=mas1[ostatok];
    chislo/=sys_shisl;
    if(ostatok>1)
    {
    chet++;
    
    }
    }
    int size1=chet;
    char mas3=new int[size1];
    for (int k=size1-1,j=0;k>=0,j<size1;k--,j++)
    {
    mas3[k]=mas2[j];
    cout<<mas3[j]<<"\t";
    
    }
delete [] mas3;
    
 
}
Компилятор почеркивает оператор new, переменные k и j,так же сам массив в строчке №39 - delete [] mas3; (последняя строчка).
Intel~lect
 Аватар для Intel~lect
135 / 124 / 2
Регистрация: 03.07.2012
Сообщений: 355
25.08.2012, 20:27     Определение размера одномерного массива #4
Цитата Сообщение от Olejan_one Посмотреть сообщение
char mas3=new int[size1];
Тут неправильно. Вот так перепиши эту строчку:
C++
1
char mas3=new char[size1];
Olejan_one
1 / 1 / 0
Регистрация: 25.08.2012
Сообщений: 105
Завершенные тесты: 2
25.08.2012, 20:44  [ТС]     Определение размера одномерного массива #5
Переделал - не помогает. New все равно подчеркивает. Может надо какую нибудь библиотеку подключить для динамической памяти?
Intel~lect
 Аватар для Intel~lect
135 / 124 / 2
Регистрация: 03.07.2012
Сообщений: 355
25.08.2012, 20:48     Определение размера одномерного массива #6
Прошу прощения. Совсем забыл. Там надо еще звездочку поставить перед именем переменной:
C++
1
char *mas3=new char[size1];
Сейчас все должно быть нормально.
Olejan_one
1 / 1 / 0
Регистрация: 25.08.2012
Сообщений: 105
Завершенные тесты: 2
25.08.2012, 20:50  [ТС]     Определение размера одномерного массива #7
а это типа указатель?
Intel~lect
 Аватар для Intel~lect
135 / 124 / 2
Регистрация: 03.07.2012
Сообщений: 355
25.08.2012, 20:52     Определение размера одномерного массива #8
Да, указатель на char. Массив символов получается. А размер во время работы программы задается
Olejan_one
1 / 1 / 0
Регистрация: 25.08.2012
Сообщений: 105
Завершенные тесты: 2
25.08.2012, 20:59  [ТС]     Определение размера одномерного массива #9
Спасибо Вам большое!=) Всё почти работает, только не выводит первую цифру. Думаю теперь легче будет уже=)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.08.2012, 21:04     Определение размера одномерного массива
Еще ссылки по теме:

C++ Определение размера массива
C++ Определение длины одномерного массива
Определение размера массива в функции C++

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

Или воспользуйтесь поиском по форуму:
Intel~lect
 Аватар для Intel~lect
135 / 124 / 2
Регистрация: 03.07.2012
Сообщений: 355
25.08.2012, 21:04     Определение размера одномерного массива #10
Пожалуйста
Yandex
Объявления
25.08.2012, 21:04     Определение размера одномерного массива
Ответ Создать тему
Опции темы

Текущее время: 22:20. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru