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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 20, средняя оценка - 4.70
norge_goth
62 / 62 / 7
Регистрация: 27.01.2009
Сообщений: 279
#1

Документация g++ - C++

03.03.2010, 12:49. Просмотров 2708. Ответов 18
Метки нет (Все метки)

Недавно начал изучать С++, и хочу научиться искать необходимую документацию, опыта в поиске доки не имел, и хочу попросить совет как мне найти доку например для new(компилятор g++) - собственно нужно узнать он генерирует исключительную ситуацию или возвращает нулевой указатель. Искал тут - http://gcc.gnu.org/onlinedocs/gcc-4.4.3/cpp.pdf но ничего не нашел

Прошу не винить за глупый вопрос, просто хочу научиться читать доку. Спасибо
2
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.03.2010, 12:49
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Документация g++ (C++):

Документация по OpenCV - C++
Существует ли хорошая документация на русском языке по OpenCV ?

Документация MSDN - C++
В библиотеках Windows'a нашел интересные статьи по поводу консоли. Есть ли перевод этой документации? Можно ли их как скачать, чтобы...

Документация по SDL - C++
Люди , кто знает пожалуйста киньте ссылки на документацию по SDL =) Заранее спс!

Документация по флагам оптимизации - C++
Подскажите мануал, документацию, гайд по флагам оптимизации. Желательно на русском. А то у меня программа весело себя ведёт. ...

документация по для пользователя - C++
Ничерта не понимаю в этом. Дали задание в универе, хоть кровь из носа надо сдать, хелп, плиз Написать программу позволяющую вводить...

Иерархия классов документация. - C++
Здрастввйте алл. Пришлось заняться С++ Буилдером. Столкнулся с проблемой.. что все, что в документации и в учебниках как-то непривычно...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
R0mm
Псевдо программист
192 / 113 / 15
Регистрация: 19.09.2009
Сообщений: 303
03.03.2010, 12:53 #2
заходите в любой поисковик. я рекомендую google.com
пишите ключевые слова. для данного случая - "c++ new" без кавычек.
смотрите результаты поиска и наслаждаетесь.
0
norge_goth
62 / 62 / 7
Регистрация: 27.01.2009
Сообщений: 279
03.03.2010, 13:06  [ТС] #3
Цитата Сообщение от R0mm Посмотреть сообщение
заходите в любой поисковик. я рекомендую google.com
пишите ключевые слова. для данного случая - "c++ new" без кавычек.
смотрите результаты поиска и наслаждаетесь.
это понятно, но я ищу именно для g++, читаю сейчас книгу Шилдта, там сказано что в случае неудачи по стандарту new должен возвращать bad_alloc, как тут - http://www.cplusplus.com/reference/std/new/bad_alloc/ , "но не все компиляторы соответствуют стандарту и некоторые возвращают нулевой указатель, что тоже не запрещается", так мне нужно узнать конкретно что возвращает new в g++ и где это искать?
1
kravam
быдлокодер
1695 / 882 / 45
Регистрация: 04.06.2008
Сообщений: 5,459
03.03.2010, 16:29 #4
На счёт документации не знаю. Но, я пожалуй, смогу тебе помочь, еесли ты захочешь узнаТь, что именно возвратил очередной вызов gcc
Речь идёт не о чтении документации, а о нескольких лёгких пассах руками. Если заинтересовался- напиши.
0
niXman
Эксперт C++
3135 / 1447 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
03.03.2010, 17:40 #5
Цитата Сообщение от norge_goth Посмотреть сообщение
в случае неудачи по стандарту new должен возвращать bad_alloc
так и есть.
за несоответствие стандарту, можно обвинять микрософтстудию и борланд. но не gcc.
0
norge_goth
62 / 62 / 7
Регистрация: 27.01.2009
Сообщений: 279
03.03.2010, 23:35  [ТС] #6
Цитата Сообщение от kravam Посмотреть сообщение
На счёт документации не знаю. Но, я пожалуй, смогу тебе помочь, еесли ты захочешь узнаТь, что именно возвратил очередной вызов gcc
Речь идёт не о чтении документации, а о нескольких лёгких пассах руками. Если заинтересовался- напиши.
Да конечно, очень хочу для моего развития будет оч полезно внимательно слушаю
0
kravam
быдлокодер
1695 / 882 / 45
Регистрация: 04.06.2008
Сообщений: 5,459
03.03.2010, 23:44 #7
Ну дело собсно в том, что, как заявляют создатели cmd.exe, узнать, что возвращает та или иная команда. довольно легко. Почитать здесь.
ссылки на другие форумы запрещены

Ключевое слово ERRORLEVEL

Более подробно щас писать некогда, футбол выбил из колеи.
0
norge_goth
62 / 62 / 7
Регистрация: 27.01.2009
Сообщений: 279
03.03.2010, 23:47  [ТС] #8
Цитата Сообщение от kravam Посмотреть сообщение
Более подробно щас писать некогда, футбол выбил из колеи.
а ну эт дело нужное ща буду разбираться
0
niXman
Эксперт C++
3135 / 1447 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
03.03.2010, 23:51 #9
Цитата Сообщение от kravam Посмотреть сообщение
Ну дело собсно в том, что, как заявляют создатели cmd.exe, узнать, что возвращает та или иная команда. довольно легко. Почитать здесь.
ссылки на другие форумы запрещены

Ключевое слово ERRORLEVEL

Более подробно щас писать некогда, футбол выбил из колеи.
товарысч, объясните мне плиз, какое отношение имеет cmd.exe к std::bad_alloc ?

Добавлено через 32 секунды
я просто в ступоре
0
easybudda
Модератор
Эксперт CЭксперт С++
9625 / 5573 / 947
Регистрация: 25.07.2009
Сообщений: 10,708
04.03.2010, 09:34 #10
kravam, а и в правду не очень понятна связь между значением, возвращаемым программой операционной системе, и значением, возвращаемым вызовом функции внутри программы. Вот к примеру странный код:
C
1
2
3
4
5
6
7
8
#include <stdio.h>
 
int main(void){
    int i = 8 % 7;
    if ( i & 1 )
        return 123;
    return 321;
}
вызвав эту программу можно узнать, какое значение она возвратила:
Код
$ ./return123 
$ echo $?
123
но как узнать, какое значение получила переменная i?
0
easybudda
Модератор
Эксперт CЭксперт С++
9625 / 5573 / 947
Регистрация: 25.07.2009
Сообщений: 10,708
04.03.2010, 14:36 #11
Топикстартеру: Можно посмотреть, как оно в заголовочном файле объявлено. К примеру у меня в макоси оно вот так выглядит:
Код
$ grep new /usr/include/c++/4.0.0/new 
/** @file new
 *  The header @c new defines several functions to manage dynamic memory and
   *  @brief  Exception possibly thrown by @c new.
   *  errors from the throwing forms of @c new.  */
  /** If you write your own error handler to be called by @c new, it must
  typedef void (*new_handler)();
  new_handler set_new_handler(new_handler) throw();
 *  - normal single new and delete (no arguments, throw @c bad_alloc on error)
 *  - normal array new and delete (same)
 *  - @c nothrow single new and delete (take a @c nothrow argument, return
 *  - @c nothrow array new and delete (same)
 *  Placement new and delete signatures (take a memory address argument,
void* operator new(std::size_t) throw (std::bad_alloc);
void* operator new[](std::size_t) throw (std::bad_alloc);
void* operator new(std::size_t, const std::nothrow_t&) throw();
void* operator new[](std::size_t, const std::nothrow_t&) throw();
// Default placement versions of operator new.
inline void* operator new(std::size_t, void* __p) throw() { return __p; }
inline void* operator new[](std::size_t, void* __p) throw() { return __p; }
2
Evg
Эксперт CАвтор FAQ
17810 / 6016 / 388
Регистрация: 30.03.2009
Сообщений: 16,531
Записей в блоге: 26
04.03.2010, 16:31 #12
Делается всё просто. Вызывается new и просится очень много памяти. Проверяется, возвращается null или кидается exception
1
niXman
Эксперт C++
3135 / 1447 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
04.03.2010, 17:37 #13
Цитата Сообщение от Evg Посмотреть сообщение
Вызывается new и просится очень много памяти. Проверяется, возвращается null или кидается exception
так это и понятно. не понятно отношение cmd.exe к std::bad_alloc

Добавлено через 20 секунд
или наоборот)
0
Evg
Эксперт CАвтор FAQ
17810 / 6016 / 388
Регистрация: 30.03.2009
Сообщений: 16,531
Записей в блоге: 26
04.03.2010, 17:48 #14
Вот реализация оператора new из gcc-4.2.1 (файл gcc-4.2.1/libstdc++-v3/libsupc++/new_op.cc)

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
_GLIBCXX_WEAK_DEFINITION void *
operator new (std::size_t sz) throw (std::bad_alloc)
{
  void *p;
 
  /* malloc (0) is unpredictable; avoid it.  */
  if (sz == 0)
    sz = 1;
  p = (void *) malloc (sz);
  while (p == 0)
    {
      new_handler handler = __new_handler;
      if (! handler)
#ifdef __EXCEPTIONS
    throw bad_alloc();
#else
        std::abort();
#endif
      handler ();
      p = (void *) malloc (sz);
    }
 
  return p;
}
Добавлено через 2 минуты
Правда есть ещё какая-то "nothrow"-реализация (файл new_opnt.cc)

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
_GLIBCXX_WEAK_DEFINITION void *
operator new (std::size_t sz, const std::nothrow_t&) throw()
{
  void *p;
 
  /* malloc (0) is unpredictable; avoid it.  */
  if (sz == 0)
    sz = 1;
  p = (void *) malloc (sz);
  while (p == 0)
    {
      new_handler handler = __new_handler;
      if (! handler)
    return 0;
      try
    {
      handler ();
    }
      catch (bad_alloc &)
    {
      return 0;
    }
 
      p = (void *) malloc (sz);
    }
 
  return p;
}
1
niXman
Эксперт C++
3135 / 1447 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
04.03.2010, 17:54 #15
Evg, так я про другое. какое отношение оператор new имеет к вендовскому интерпретатору команд(cmd.exe) ?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.03.2010, 17:54
Привет! Вот еще темы с ответами:

Документация и примеры по файлу dsound.h - C++
Добрый день, у меня MVS 2010 Express, подключил dsound.h, но не могу найти по нему документацию, на сайте Микрософта инфы мало и примеров...

Последняя официальная документация по стандарту СРР - C++
Кто знает, где обитает последняя официальная документация по стандарту СРР ?

Документация c++ - C++
Знаю что есть просто суперская документация по java, сам пользуюсь не нарадуюсь, есть нормальная ли документация по с++? php? кроме MSDN,...

Нужна документация по библиотеке fann на русском - C++
необходим справочник по функциям на русском для библиотеки fann. ну или хотя бы как извлечь коэффициенты весов (коэффициенты связи) чтобы...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
04.03.2010, 17:54
Ответ Создать тему
Опции темы

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