Документ взят из кэша поисковой машины. Адрес оригинального документа : http://www.fds-net.ru/showflat.php?Number=2318362&src=arc&showlite=
Дата изменения: Unknown
Дата индексирования: Wed Apr 13 09:04:48 2016
Кодировка: Windows-1251
Как отмаллочить память для элемента структуры в Си? - Public forum of MSU united student networks
Root | Google | Yandex | Mail.ru | Kommersant | Afisha | LAN Support
  
Technical >> Development (Archive)

Страницы: 0 | 20 | 40 | 60 | показать все | след. страница
glebius
geek

Рег.: 07.12.2002
Сообщений: 45226
Рейтинг: 13030
  Re: Как отмаллочить память для элемента структуры в Си? [re: kvs]
      05.02.2005 01:32
 

> а malloc кастить-то зачем ? типа это нехорошо считается

Поясни. Прокомментируй.



shut up and code
Shurick
Bad Man

Рег.: 30.08.2002
Сообщений: 6379
Рейтинг: 303
  Re: Как отмаллочить память для элемента структуры в Си? [re: kvs]
      05.02.2005 01:36
 

> а malloc кастить-то зачем ?

чтоб варнинга не было

kvs
enthusiast

Рег.: 30.08.2002
Сообщений: 303
Рейтинг: 0
  Re: Как отмаллочить память для элемента структуры в Си? [re: Shurick]
      05.02.2005 10:35
 

#include <stdlib.h>

и не будет варнингов



Konstantin Sorokin
kvs
enthusiast

Рег.: 30.08.2002
Сообщений: 303
Рейтинг: 0
  Re: Как отмаллочить память для элемента структуры в Си? [re: glebius]
      05.02.2005 10:45
 

Вот, мнение Криса Торека, к примеру:
http://www.google.ru/groups?q=malloc+cast+group:comp.lang.c+author:Torek&hl=ru&lr=&selm=bvec0901i1a%40enews4.newsguy.com&rnum=1



Konstantin Sorokin
gadfatherАдминистратор
Carpal Tunnel

Рег.: 05.11.2003
Сообщений: 47302
Из: пл. Гагарина
Рейтинг: 16961
  Re: Как отмаллочить память для элемента структуры в Си? [re: kvs]
      05.02.2005 11:01
 

Ну вот, там ясно написано, что на современном C вроде бы пофиг, как писать.
А если вдруг нужно будет скомпилировать код как C++, явное приведение позволяет избежать варнинга.



You can't always get what you want
kvs
enthusiast

Рег.: 30.08.2002
Сообщений: 303
Рейтинг: 0
  Re: Как отмаллочить память для элемента структуры в Си? [re: gadfather]
      05.02.2005 11:19
 

если надо компилировать как C++, то да, касты нужны. однако оставаясь в рамках языка C считается, что касты скорее вредны, чем полезны.



Konstantin Sorokin
glebius
geek

Рег.: 07.12.2002
Сообщений: 45226
Рейтинг: 13030
  Re: Как отмаллочить память для элемента структуры в Си? [re: gadfather]
      05.02.2005 12:11
 

На Це тоже нужен каст, если -Wчего-то-там-точно не помню.



shut up and code
kvs
enthusiast

Рег.: 30.08.2002
Сообщений: 303
Рейтинг: 0
  Re: Как отмаллочить память для элемента структуры в Си? [re: glebius]
      05.02.2005 13:36
 

что-то я не понял.... это стандартом утверждается, что void* преобразовывается без кастов. Какой еще -Wbla-bla ?



Konstantin Sorokin
glebius
geek

Рег.: 07.12.2002
Сообщений: 45226
Рейтинг: 13030
  Re: Как отмаллочить память для элемента структуры в Си? [re: kvs]
      05.02.2005 13:51
 

> что-то я не понял.... это стандартом утверждается, что void* преобразовывается без кастов. Какой еще -Wbla-bla ?

Хмм. Я не смог найти этот -W. Но я помню, что когда-то я добавлял касты для того, что бы не было warningов.



shut up and code
Druxa
Дрюха

Рег.: 27.06.2003
Сообщений: 2722
Из: Троицк
Рейтинг: 1974
  Re: Как отмаллочить память для элемента структуры в Си? [re: gadfather]
      05.02.2005 14:39
 

Quote:

явное приведение позволяет избежать варнинга


В с++ отсутствие каста - это не warning, это error.
Quote:

test.cpp:5: ANSI C++ forbids implicit conversion from `void *' in assignment






нет, я не богат... я сказочно не богат... но я и не умен...
Druxa
Дрюха

Рег.: 27.06.2003
Сообщений: 2722
Из: Троицк
Рейтинг: 1974
  Re: Как отмаллочить память для элемента структуры в Си? [re: Druxa]
      05.02.2005 14:41
 

Вообще нет никакой _объективной_ причины разрешать кастить void* в любой указатель. Когда придумывали Си, подозреваю, что такое решение было принято _именно_ из-за этого убожества с malloc-ом.



нет, я не богат... я сказочно не богат... но я и не умен...
DarkGrayМодератор
Carpal Tunnel

Рег.: 30.09.2002
Сообщений: 31415
Рейтинг: 8952
  Re: Как отмаллочить память для элемента структуры в Си? [re: Druxa]
      05.02.2005 20:19
 

С с шаблонами бывает? т.е. без объектов, но с шаблонами?

ihanic
enthusiast

Рег.: 11.09.2004
Сообщений: 202
Из: Russia Federation
Рейтинг: 23
  Re: Как отмаллочить память для элемента структуры в Си? [re: tipagleb]
      05.02.2005 23:27
 

какая разница, сколько у тебя оперативки? для защиты от бесконечной рекурсии стек ограничен, обычно максимум мегабайта 2
зависит от параметров компиляции, иногда настроек операционки



докажи все себе.
gadfatherАдминистратор
Carpal Tunnel

Рег.: 05.11.2003
Сообщений: 47302
Из: пл. Гагарина
Рейтинг: 16961
  Re: Как отмаллочить память для элемента структуры в Си? [re: ihanic]
      05.02.2005 23:40
 

> для защиты от бесконечной рекурсии стек ограничен

для защиты от бесконечной утечки памяти область данных ограничена



You can't always get what you want
ihanic
enthusiast

Рег.: 11.09.2004
Сообщений: 202
Из: Russia Federation
Рейтинг: 23
  Re: Как отмаллочить память для элемента структуры в Си? [re: gadfather]
      05.02.2005 23:55
 

еще при бесконечной рекурсии сильно утекает процессорное время так что лучше не ждать, пока заполнятся гига 3 оперативы, а пресечь чуть пораньше



докажи все себе.
vond

Рег.: 08.04.2004
Сообщений: 6076
Из: Москва
Рейтинг: 1202
  Re: Как отмаллочить память для элемента структуры в Си? [re: ihanic]
      06.02.2005 00:01
 

Вопрос: а как я в свое время умудрялся делать программы на фортране (как под Windows, так и под Linux), которые использовали порядка 500 мегабайт памяти, причем все из стека? Динамического выделения памяти я не использовал, параметров компиляторам никаких специальных не передавал...

gadfatherАдминистратор
Carpal Tunnel

Рег.: 05.11.2003
Сообщений: 47302
Из: пл. Гагарина
Рейтинг: 16961
  Re: Как отмаллочить память для элемента структуры в Си? [re: ihanic]
      06.02.2005 00:03
 

> еще при бесконечной рекурсии сильно утекает процессорное время так что лучше не ждать, пока заполнятся гига 3 оперативы, а пресечь чуть пораньше

при бесконечной утечки памяти процессорного времени утекает еще больше (выделять память на стеке проще, чем в куче),
так что, казалось бы, зачем ждать, пока заполнятся почти 3 гига?

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



You can't always get what you want
gadfatherАдминистратор
Carpal Tunnel

Рег.: 05.11.2003
Сообщений: 47302
Из: пл. Гагарина
Рейтинг: 16961
  Re: Как отмаллочить память для элемента структуры в Си? [re: vond]
      06.02.2005 00:20
 

Вариант 1: у фортрана свои механизмы выделения памяти
Вариант 2: ты (или фортрановский рантайм) увеличил ограничения




You can't always get what you want
Druxa
Дрюха

Рег.: 27.06.2003
Сообщений: 2722
Из: Троицк
Рейтинг: 1974
  Re: Как отмаллочить память для элемента структуры в Си? [re: vond]
      06.02.2005 00:20
 

Quote:

параметров компиляторам никаких специальных не передавал


Ну значит фортран сам за тебя уносил большие массивы со стека. Они же известной длины были...



нет, я не богат... я сказочно не богат... но я и не умен...
Druxa
Дрюха

Рег.: 27.06.2003
Сообщений: 2722
Из: Троицк
Рейтинг: 1974
  Re: Как отмаллочить память для элемента структуры в Си? [re: gadfather]
      06.02.2005 00:23
 

Quote:

а на самом деле все просто


Ко всему прочему, многотредовой программе нужно _много_ стеков, причем их (в отличие от однотредового случая) нельзя наращивать "по необходимости"... Поэтому должно быть некоторое разумное и зафиксированное ограничение.



нет, я не богат... я сказочно не богат... но я и не умен...
Страницы: 0 | 20 | 40 | 60 | показать все | след. страница

Technical >> Development (Archive)

Дополнительная информация
0 зарегистрированных и 2 анонимных пользователей просматривают этот форум.

Модераторы:  DarkGray 

Печать темы
>>
Права
      Вы можете создавать новые темы
      Вы можете отвечать на сообщения
      HTML отключен
      UBBCode включен

Рейтинг:
Просмотров темы:

Переход в