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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
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 { http://www.cyberforum.ru/cpp-beginners/thread18068.html
Найти K-ю цифру в строке натуральных чисел C++
Сразу о главном: дано натуральное K. Найти K-ю цифру в строке натуральных чисел 123456789101112131415.... Что с этим счастьем делать, ума не приложу((( Помогите, пожалуйста, если кто может.
Программа на С C++
Написать программу, подсчитывающую число прожитых Вами дней. Программа должна предложить Вам ввести дату вашего рождения, текущую дату и выдать сообщение, что Вы живете такой-то день. я это изобразила примерно так: #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'е проверить, является ли символ буквой латинского алфавита? http://www.cyberforum.ru/cpp-beginners/thread18047.html
помогите,плз разобраться с вопросиком. возможно ли в одном case'е проверить является ли символ буквой латинского алфавита? т.е. сделать аналогично этому: if ((a>='a') && (a<='z')) ? если возможно, то каков синтаксис? всем заранее большое спасибо! )))
C++ Элементарные операции с текстовыми файлами и строками Дайте пожалуйста совет, а лучше разьесните/напишите прогу со следующими заданиями: Прога, в которой: 1.Считываются символьная строка данных из файла text.txt. 2.Проводится обработка считанных данных согласно варианту. 3.Данные записываются в новый файл new_text.txt. ПРИМЕЧАНИЕ. Словом считать последовательность символов, ограниченную пробелами, запятыми, точками, кавычками, либо их... подробнее

Показать сообщение отдельно
CheshireCat
Эксперт С++
2892 / 1241 / 78
Регистрация: 27.05.2008
Сообщений: 3,364
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... и переписывать его - не вариант.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru