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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Avicii
 Аватар для Avicii
2 / 2 / 0
Регистрация: 01.12.2012
Сообщений: 123
#1

Безопасный массив - C++

22.04.2013, 17:16. Просмотров 435. Ответов 4
Метки нет (Все метки)

Здравствуйте,помогите пожалуйста,как подстроить данную программу под безопасный массив (контроль границ).Своими силами не получается.Заранее благодарю.
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
#include <iostream>
#include <cmath>
using namespace std;
class samp {double a;
            public:
            double put_a (double n)
            {a=n;}
            double get_a()
             {if(a>10)
                {return (a=1);}
                  if (a<=10)
                   {return (a=round(a));}
             }
            };
int main()
{samp M[10];
double B[10];
int i;
cout<<"Vvedite massiv M[10]: ";
for (i=0;i<10;i++)
cin>>B[i];
for (i=0;i<10;i++)
M[i].put_a(B[i]);
for (i=0;i<10;i++)
cout<<M[i].get_a()<<" ";
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.04.2013, 17:16     Безопасный массив
Посмотрите здесь:

C++ безопасный массив
C++ Создать иерархию классов вектор(longint) и безопасный вектор с проверкой выхода за пределы
Создать иерархию классов вектор и безопасный вектор с проверкой выхода за пределы C++
программка должна генерировать безопасный пароль C++
Безопасный список в многопоточной программе C++
C++ Дан массив целых чисел,произвести для него следующие операции: для каждого из чисел ,входящего в массив,указать,сколько раз оно входит в массив...
C++ Ввести массив А. В массив В перенести все элементы массива А, стоящие правее максимального элемента, и имеющие нечетный индекс. Массив В отсортировать
C++ Файл: Загрузка данных из файла: первый столбец записывался в 1й массив, второй столбец - во 2й массив, а 3й столбец - в 3й массив.
Массив: Как скопировать двумерный массив в другой массив? C++
C++ Безопасный ввод через функцию-шаблон
C++ Разработать безопасный класс с идиомой pimpl
C++ Безопасный ввод с консоли

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
22.04.2013, 17:20     Безопасный массив #2
Не знаю, что такое безопасный массив, по идее и обычный безопасен.
Цитата Сообщение от Avicii Посмотреть сообщение
массив (контроль границ)
. Это называется ограниченный массив, читай Шилдта.
Tulosba
:)
Эксперт С++
4384 / 3227 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
22.04.2013, 17:33     Безопасный массив #3
Avicii, используйте std::vector и функцию at() и будет Вам безопасный массив.
Avicii
 Аватар для Avicii
2 / 2 / 0
Регистрация: 01.12.2012
Сообщений: 123
23.04.2013, 09:25  [ТС]     Безопасный массив #4
Цитата Сообщение от taras atavin Посмотреть сообщение
Не знаю, что такое безопасный массив, по идее и обычный безопасен.
. Это называется ограниченный массив, читай Шилдта.
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
#include <iostream.h>
#include <stdlib.h>
class array {
int size;
char *p;
public:
array (int num)
 
~array (){delete[]p;}  // почему здесь ошибка и какая?
 
char&put(int i)
char get(int i)};
array::array (int num )
{p=new char[num];
if(!p)
{cout<<"oshibka"
exit(1);}
size=num;}
 
char & array::put(int i)
{if(i<0 ll i>=size)
{cout<<"naryshenie graniz",exit(1);}
return p[i];}
char array :: get(int i)
{if(i<0 ll i>=size)
{cout <<"oshibka v narushenii graniz",exit(1);}
return p[i];
}
int main()
{array a(10);
a.put(3)='x';
a.put(2)='r';
cout<<a.get(3)<<a.get(2)<<"\n";
a.put(11)='!';
return 0;}
Вот пример безопасного массива с контролем границ
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
23.04.2013, 09:31     Безопасный массив #5
Цитата Сообщение от Avicii Посмотреть сообщение
array (int num)
~array (){delete[]p;} *// почему здесь ошибка и какая?
после заголовка конструктора надо или точку с запятой поставить, а потом отдельно array::array (int num) и тело конструктора, или сразу тело конструктора.
Yandex
Объявления
23.04.2013, 09:31     Безопасный массив
Ответ Создать тему
Опции темы

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