- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 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
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
/* В комментариях то что хотел Автор от своей программы */
/* Радует однако, что она компилируется и во время */
/* работы не выдает ни каких ошибок */
/* Порядок операторов сохранен. */
/* Тот же код только вырезанно "лишнее". */
/* Эта ф-ия находится в другом cpp файле */
float f(float x, float y)
{
/* Тут что-то происходит с x и y */
return x, y;
}
void main(void)
{
float **m;
/* ... */
float f(float x, float y);
/* ... */
/* Задается N */
float N;
/* ... */
/* Выделяется память под массив m[N][2] */
m = (float **)malloc(sizeof(float*));
for(i = 0; i < N; i++)
{
m[i] = (float*)malloc(sizeof(float*) * 2);
}
/* ... */
for(i = 0; i < N; i++)
{
/* Массив заполняется числами */
/* В m[i][] должны быть записанны числа x, y измененый ф-ей f */
/* т. е. m[i][0] = xf */
/* m[i][1] = yf */
for(j = 0; j < 2; j++)
{
m[i][j] = f(x, y);
/* ... */
}
}
/* ... */
}
Можно написать функцию, принимающую размерность массива и размер элемента и возращающая указатель, тогда использование будет простое, например:
Поздравляю, ты только что изобрел calloc().
логики понять не могу, почему одно требует умножать самому и не обнуляет, а другое принимает множитель отдельно и обнуляет
Чесание левой пятки?
P.S. За что минус?
P.S. Код Fai не скомпилится, т.к. компилер скажет, что размер массива array неизвестен.
Я, наверное, отстал от жизни, но... КАК?
?
Но получилось так как ты сказал. :'(
> m = (float **)malloc(sizeof(float*));
А где здесь N ? ;)
> float N
> for(i = 0; i < N; i++)
*facepalm.png*
Да, повезло парню, что sizeof(float) == sizeof(float*). С даблами проблемы начались бы уже при N = 1.
Повезло ему, что флоат имеет тот же размер, что указатель, ох повезло.
Вообще типичный ламокод. Блядство сишки в том, что она это позволяет, шлюшка такая...
Нельзя подпускать ни к сишке, ни к крестам новичка, никак нельзя. Только при строгой самодисциплине человек может использовать эти языки во благо, а не во зло.
А половину крестоблядей я бы сразу отлучил от языка. Долбоёбам, которые используют сырые указатели в крестах, потому что они думают, что так быстрее / что они сами за всем уследят и им западло прибегать к помощи компилятора / что неявные вызовы чего-либо (даже деструктора) = зло, надо гвоздь в голову забить.
В паскале имхо меньше возможностей выстрелить себе в ногу, для обучения азам в самый раз. А как в голове хоть какое-то понимание устаканится, можно и дальше переходить.
на
И называет это крестооптимизацией.
Ня. Сдвиги.
А вот то, что циклических нету в си - жаль. Для криптографии было бы удобно. Писать a << 11 | a >> 21, и надеяться что компилятор превратит это в циклический сдвиг (а для unsigned'ов gcc и clang таки превращают в rol/ror), как-то неприятно.
P.S. Сдвиг знакового инта естественно транслируется в арифметический сдвиг (sar/sal), а беззнакового в shr/shl.
Сишка выбирает в зависимости от знаковости типа, дельфа всегда какого-то хуя берёт беззнаковый (правда при вычислении времени компиляции и при показе в отладчике берёт в зависимости от знаковости типа), ФПЦ выбирает в зависимости то ли от опций, то ли от фазы луны.
Про тему http://www.gamedev.ru/code/forum/?id=139163 я пока не забыл.
P.S. А ну да, зеленый коммент.
PHP (3112)
C++ (1084)
C# (927)
JavaScript (773)
Java (749)
Куча (505)
Си (386)
Pascal (327)
SQL (284)
ActionScript (257)
Python (211)
1C (148)
Perl (125)
Objective C (104)
bash (98)
Ruby (95)
VisualBasic (84)
Assembler (46)
> Ruby (95)
и всё только благодаря одному человеку
Возьмем метрику, учитывающую популярность языка и количество говнокода:
(количество говнокода на языке / всего говнокода) / (процентная доля языка на рынке | в опенсорсе).
В итоге получаем рейтинг языков, упорядоченных по говнотируемости (от слов говно и адаптированность):
В итоге, можно сказать, что сишка для говна совершенно не приспособлена! Такой популярный язык, а говна на нем совсем мало.
Как рейтинг популярности использовал: https://github.com/languages
http://web.archive.org/web/20130723065006/https://github.com/languages
JavaScript 21%
Ruby 12%
Java 8%
Shell 8%
Python 8%
PHP 7%
C 6%
C++ 5%
Perl 4%
CoffeeScript 3%
Потом эту табличку почему-то прикрыли.
> return x, y;
Ага, http://stackoverflow.com/questions/423710/return-more-than-one-value-from-a-function-in-python
нужно начинать с PHP, тогда ты никакие языки больше не сможешь, и не будешь гадить в сишечке