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