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

Реализовать стратегий обработки возможных ошибок времени исполнения - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Ввести число(трехзначное), и вывести одинаковые в нем числа http://www.cyberforum.ru/cpp-beginners/thread821328.html
Помогите сделать.. Ввести число(трехзначное), если в нем есть одинаковые числа то вывести какие именно.
C++ вызовы конструкторов обьясните вызов конструторов #include <iostream> using namespace std; class ar { int *p; int size; public: http://www.cyberforum.ru/cpp-beginners/thread821313.html
Записать в предложении символы самого короткого слова в обратном порядке C++
Помогите пожалуйста!:cry: Нужно записать в предложении символы самого короткого слова (всех слов, если их несколько) в обратном порядке. Длинна предложения не должна превышать 30 символов. Заранее спасибо!
Доступ из одного класса в другой C++
Мучаюсь полдня. Помогите. Суть такая. Есть два класса PictureForm и LevelForm. Как из класса LevelForm вызвать функцию класса PictureForm так, чтобы в этой функции я мог использовать переменный класса PictureForm. Точнее использовать то я могу, но их значения обнуляются. В классе PictureForm инициализирую переменную (в PictureForm.h она объявлена : int temp; ) temp = 100; И как теперь её...
C++ Класс объявление с элементом типа класс Текст http://www.cyberforum.ru/cpp-beginners/thread821296.html
Необработанное исключение в "0x770015de" в "FAQ.exe": 0xC0000005: Нарушение прав доступа при записи "0xabababab".
C++ Дано натуральное число n (n <= 9999). Учитывая все четыре цифры числа, определить, правильно, что оно содержит: все разные цифры Плиз срочно надо=) для Microsoft Visual Studio 2010 Запрещено размещать тему в нескольких разделах одновременно (кросспостинг), а также дублировать тему в одном разделе. Правила форума подробнее

Показать сообщение отдельно
Rayvol
0 / 0 / 0
Регистрация: 29.11.2011
Сообщений: 46
28.03.2013, 18:19     Реализовать стратегий обработки возможных ошибок времени исполнения
Добрый день. Нужна помощь.
Задание:
Выделить фрагмент оперативной памяти и реализовать не менее трех различных стратегий обработки возможных ошибок времени исполнения.

Нужно помочь с кодом. Все ли в нем адекватно, что можно исправить\изменить.
В данный момент код не устраивает так как (комментарий преподавателя):
"Первая функция совершенно бессмысленна. Да и стратегия тут всего одна на всех" - как это решить?
Заранее спасибо за помощь или советы!

Вот код (http://codepaste.ru/13913/):

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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#include <stdlib.h>
#include <iostream>
#include <stdexcept>
#include <stdio.h>
#include <new>
using namespace std;
 
char *getmem1(size_t amount)
{
  try
    {
      char *str =(char *) malloc(amount);
     //char *str=   new char(amount);
        if ((str =(char *) malloc(amount)) == NULL)         throw::overflow_error("Нет доступной памяти для размещения буфера");
        cin>>str;
        cout<<"String is: "<<str<<endl;
        return str;
    }
    catch (std::overflow_error const & e)
    {
        std::cout << "Error: " << e.what() << "\n";
        return 0;
    }
 
 
}
 
char * getmem2(size_t amount)
{   char *str;
    if ((str =(char *) malloc(amount)) == NULL)
    {
        /*   Если возвращенное значений ? NULL, выводим            */
        /* сообщение: "Нет доступной памяти для размещения буфера" */
        cout<<"Not enough memory to allocate buffer"<<endl;
        exit(1);   /* "Аварийно" завершаем работу программы */
    }
    else {  
        cin>>str;
        cout<<"String is: "<<str<<endl;
        return str;}
}
 
int getmem3(size_t amount)
{   
    char *str;
    if ((str =(char *) malloc(amount)) != NULL)
      {
        cin>>str;
        cout<<"String is: "<<str<<endl;
        return 1;   /* 1 - код ошибки */
      }
    free(str);
    return 0;
}
int main()
{
    size_t amount;
    cin>>amount;
    //free(getmem2(amount));
    //if (!getmem3(amount))
    //cout<<"Not enough memory to allocate buffer"<<endl;
    free(getmem1(amount));
    system("pause");
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 16:42. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru