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

Односвязный, двусвязный список, стек, очередь - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Builder Переделать под Builder 6 http://www.cyberforum.ru/cpp-beginners/thread18107.html
Сделал задачу на visual, но надо ее выполнить на билдере, точнее создать кнопку баттон и в ней вписать код. Но у меня в билдере появляются ошибки и не работает, возможно что-то пишется по другому я не знаю, работал все тока в вижуле. Помогите пожалуйста, исправьте код под билдер 6 #include <iostream.h> #include <iomanip.h> #include <conio.h> #include <stdlib.h> #include <time.h> int...
C++ Помогите !!!! Помогите решить!!!!! Я новичёк http://www.cyberforum.ru/cpp-beginners/thread18069.html
C++ Написать класс Graph
Здравствуйте! Помогите пожалуйста, разобраться с лабой по С/С++ написанной для BC3.1 и преподавателя 1959 г. выпуска (это я к тому, что он без void main() работы не принимает). Прожка такая: #include <iostream.h> #include <stdio.h> #include <conio.h> #include <dos.h> #include <graphics.h> #include <stdlib.h> class Graph {
Найти K-ю цифру в строке натуральных чисел C++
Сразу о главном: дано натуральное K. Найти K-ю цифру в строке натуральных чисел 123456789101112131415.... Что с этим счастьем делать, ума не приложу((( Помогите, пожалуйста, если кто может.
C++ Программа на С http://www.cyberforum.ru/cpp-beginners/thread18057.html
Написать программу, подсчитывающую число прожитых Вами дней. Программа должна предложить Вам ввести дату вашего рождения, текущую дату и выдать сообщение, что Вы живете такой-то день. я это изобразила примерно так: #include<Iostream> using namespace std; int main() { int god, mes, day,run,wer,ryu; cout<<"Vvedite den rogdenia\n"; cin>>run; cout<<"Vvedite mesiac rogdenia\n";
C++ Возможно ли в одном case'е проверить, является ли символ буквой латинского алфавита? помогите,плз разобраться с вопросиком. возможно ли в одном case'е проверить является ли символ буквой латинского алфавита? т.е. сделать аналогично этому: if ((a>='a') && (a<='z')) ? если возможно, то каков синтаксис? всем заранее большое спасибо! ))) подробнее

Показать сообщение отдельно
CheshireCat
Эксперт С++
2907 / 1235 / 78
Регистрация: 27.05.2008
Сообщений: 3,307
02.03.2009, 11:37     Односвязный, двусвязный список, стек, очередь
На самом деле, что произойдет при неудачной попытке выделить память - довольно-таки неоднозначная ситуация. Более того, даже на одном и том же компиляторе это зависит от кода!! Я немного поэкспериментировал с доступными мне компиляторами, и вот какие результаты получились:
Тест 1
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>
#include <exception>
#include <stdexcept>
 
using namespace std;
 
int main()
{
    try
    {
        while(true)
        {
            char* p = new char[0x40000000];
            if (p == NULL)
            {
                cout << "NULL pointer" << endl;
                break;
            }
        }
    }
    catch(bad_alloc& a)
    {
        cout << "bad_alloc exception" << endl;
    }
    return 0;
}
 
// GCC 3.4             bad_alloc exception
// GCC 4.4             bad_alloc exception
// MSVC++ 5 (97)       NULL pointer
// MSVC++ 6            NULL pointer
// MSVC++ 7.0          bad_alloc exception
// MSVC++ 7.1 (2003)   bad_alloc exception
// MSVC++ 2005         bad_alloc exception
// Borland C++ 5.5     bad_alloc exception
Тест 2
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
#include <stdio.h>
#include <stdlib.h>
 
int main()
{
    try
    {
        while(true)
        {
            char* p = new char[0x40000000];
            if (p == NULL)
            {
                printf("NULL pointer\n");
                break;
            }
        }
    }
    catch(...)
    {
        printf("bad_alloc exception\n");
    }
    return 0;
}
 
// GCC 3.4             bad_alloc exception
// GCC 4.4             bad_alloc exception
// MSVC++ 5 (97)       NULL pointer
// MSVC++ 6            NULL pointer
// MSVC++ 7.0          NULL pointer
// MSVC++ 7.1 (2003)   NULL pointer
// MSVC++ 2005         bad_alloc exception
// Borland C++ 5.5     bad_alloc exception
Вот это и привносит любопытную проблему - как написать переносимый код?....

Добавлено через 32 минуты 40 секунд
PS: юзать new(std::nothrow) не предлагать - бо имеется большой объем legacy code... и переписывать его - не вариант.
 
Текущее время: 19:42. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru