Другие языки программирования и технологии
динамический массив в Visual C++
Всем привет)) Есть класс, его 2 поля должны быть динамическими массивами, размерность заранее не известна и вычисляется в одном из методов. Делаю так: class TMultinominal{ private: int coef_mas,//первый динамический массив step_mas,//второй динамический массив //и т.д. } Далее в методе переопределяю размерность: coef_mas = *new int[temp_n]; step_mas = *new int[temp_n]; на этом этапе пока всё хорошо. Но стоит только попытаться положить что-либо в элемент массива: step_mas[now_work_with] = 0; как вылетает ошибка error C2109: subscript requires array or pointer type Что я не так делаю? :):):)
Кратко: все.
Объявление:
int *coef_mas, *step_mas, ..
Это ведь указатели, а не целые. По крайней мере, должны быть.
coef_mas = *new int[temp_n];
Вообще супер. Ты создаешь массив (new int[temp_n]), его адрес, ес-но, лежит во временной переменной. Ты берешь адрес этой переменной (*) и заносишь его в coef_mas, неявно преобразуя в int.
Ну а step_mas[now_work_with] - это сдвиг на now_work_with слов от той временной переменной. Т. е. совершенно неопределенный адрес. Хорошо еще, что вылетает - а мог и вешаться...
Объявление:
int *coef_mas, *step_mas, ..
Это ведь указатели, а не целые. По крайней мере, должны быть.
coef_mas = *new int[temp_n];
Вообще супер. Ты создаешь массив (new int[temp_n]), его адрес, ес-но, лежит во временной переменной. Ты берешь адрес этой переменной (*) и заносишь его в coef_mas, неявно преобразуя в int.
Ну а step_mas[now_work_with] - это сдвиг на now_work_with слов от той временной переменной. Т. е. совершенно неопределенный адрес. Хорошо еще, что вылетает - а мог и вешаться...
В классе должны быть указатели на int.
Григорий Шляпин
А как правильно то мне написать? Примерчику был бы рад очень))))
Звездочки попутал
class TMultinominal{
private:
int *coef_mas, //первый динамический массив
*step_mas, //второй динамический массив
//и т. д.
}
Далее в методе переопределяю размерность:
coef_mas = *new int[temp_n]new int[temp_n];
step_mas = *new int[temp_n]new int[temp_n];
class TMultinominal{
private:
int *coef_mas, //первый динамический массив
*step_mas, //второй динамический массив
//и т. д.
}
Далее в методе переопределяю размерность:
coef_mas = *new int[temp_n]new int[temp_n];
step_mas = *new int[temp_n]new int[temp_n];
Я бы сказал std::vector<int>
step_mas, //второй динамический массив
С С++ не знаком, но для массива step_mas, ты кажись не указал тип элементов.
С С++ не знаком, но для массива step_mas, ты кажись не указал тип элементов.
Григорий Шляпин
не, указал....там инт касается обоих массивов, они через запятую))))
Игорь Комиссаров
Ты совершенно прав. С С++ ты не знаком
int temp_n= 100; // изменяешь как тебе надо, но массив надо тоже переопределять)
...
...
int *coef_mas, //первый динамический массив и *
int *step_mas, //второй динамический массив и *
...
coef_mas = new int[temp_n]; // без *
step_mas = new int[temp_n]; // без *
if(now_work_with < temp_n) // смотри что бы за пределы памяти не вылезал) которую ипользуешь
step_mas[now_work_with] = 0;
else
error;
...
...
int *coef_mas, //первый динамический массив и *
int *step_mas, //второй динамический массив и *
...
coef_mas = new int[temp_n]; // без *
step_mas = new int[temp_n]; // без *
if(now_work_with < temp_n) // смотри что бы за пределы памяти не вылезал) которую ипользуешь
step_mas[now_work_with] = 0;
else
error;
Похожие вопросы
- вопрос о динамических массивах в fortran
- пожалуйста, напишите мне программу этого вопроса в C ++.пожалуйста помогите. Создать динамический массив из N чисел.
- Microsoft Visual C++ 6.0 В одномерном массиве, состоящем из n вещественных элементов, вычислить...
- Как описать и использовать динамический массив в C++
- Написать программу в VBA арифметической прогрессии в динамическом массиве.
- С++: Как изменять размеры многомерных динамических массивов по ходу выполнения программы?
- c++ динамический массив
- Вычислить сумму нечетных элементов в программа С++ .Через статический и динамический массив! Вот я сам написал проверьте
- С++ Динамический массив
- Динамический массив. help