LINUX.ORG.RU

Тебя в гугле забанили или ты просто клоун?

anonymous
()
Ответ на: комментарий от Valman_new_new

Ну вот например в одной книжке я прочитал. к примеру: Есть структура

struct f {
  struct f *next;
};
Написано, что в стандарте после таких действий значение структуры не определено.
struct p = f;
free ( f );
p = f->next;
Тоесть не определено, потому что f уже освобождена, и чтобы освободить next, нужно заранее сделать указатель.
struct *p;
struct *ff;
ff = f;
while ( p ) {
  p = ff->next;
  free ( ff );
  ff = p;
}
Но где такой стандарт содержательный написан я не находил.

u0atgKIRznY5
() автор топика

Вообще ЕМНИП, официальные бумажки с окончательной версикй стандарта C  — платные (тоже самое относится к С++). Однако, последнюю версию черновика стандарта можно скачать бесплатно (она не сильно отличается от, собственно, финальной версии).

Но эти стандарты читать не очень полезно (если ты не разработчик компилятора): там все написано ужасно дотошно, что просто мозг будет закипать от деталей. Для того, чтоб писать на С/C++ вполне будет достаточно ресурса типа http://en.cppreference.com/

KennyMinigun ★★★★★
()
Последнее исправление: KennyMinigun (всего исправлений: 2)
Ответ на: комментарий от u0atgKIRznY5

А причём в ваших примерах стандарты? В каком угодно языке, если вы освободили память, то юзать её не допустимо. Да, 30 лет назад, когда память выделялась только через sbrk(), free() ничего не рушил в структуре до следующего malloc(), но и тогда использовать освобождённую память с приведённой оговорокой крайне не рекомендовалось.

vodz ★★★★★
()

спасибо. Я кстати нашёл платные стандарты.

u0atgKIRznY5
() автор топика
Ответ на: комментарий от KennyMinigun

последнюю версию черновика стандарта можно скачать бесплатно (она не сильно отличается от, собственно, финальной версии)

С11 за полгода до релиза :-(

anonymous
()
Ответ на: комментарий от anonymous

С явно не относится к языкам, где за полгода случаются большие изменения в стандарте

Softwayer ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.