- 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
typedef struct ll_node
{
struct ll_node *prev;
struct ll_node *next;
int val;
} ll_node;
ll_node a;
ll_node b;
ll_node c = {&a, &b,3};
// не работает
a.next = &b;
a.prev = &c;
b.next = &c;
b.prev = &a;
/*
c.next = &a;
c.prev = &b;
*/
// зато так работает:
ll_node arr[3] = {
{&arr[2], &arr[1],1},
{&arr[0], &arr[2],2},
{&arr[1], &arr[0],3}
};
Существуют разные решения:
1. Крестоблядское. Там указатели правят в конструкторах которые вызываются при передвижении структуры
2. Растовое. Запретить такое нахуй, и всё. Хочешь ссылаться с кошечки на собачку? Положи их в массив, и ссылайся на первый элемент или на второй.
3. GCблядское: положи всё в кучу, и не парься.
Впринципе, в няшной тоже можно сделать вариант 3, наверное.
Если бы двигали сами данные, затраты энергии были бы пиздец какими.
Данные двигают в плавпитухе, но там и объёмы смешные: 8 регистров по 80 байт.
Скорее всего она будет создана на вызываемой стороне, но в целом не обязана
Указатели создают барьеры для deep copy и для reallocate.
Погугли про боль растишек про self-reference structure, это очень смешно: там нужен Pin + unsafe.
попробуй положить это в функцию, и потом передать куда-то 'a'
Если вы адреса локальных переменных куда-то педераете, то сами себе сами знаете кто.
https://youtu.be/0ca8F7SLxiA?t=727
Для чего так сделали? Экономили видеопамять?
Гугли attribute clash (Конфликт атрибутов)
ps: так что не только писюкатые гейдевки ебалися с планарами, спектрумисты еще более ебалися
С планарами считай, что ебли нет: любой пиксель можно раскрасить в любой цвет, только на вывод пикселя уходит много тактов из-за планаров (в быстрых играх придётся делать буферизацию и выводить пиксели оптом, чтобы реже переключать планары).
а еще были баттлтодс и даблдрагн
https://ru.m.wikipedia.org/wiki/Кобыла_и_трупоглазые_жабы_искали_цезию,_ нашли_поздно_утром_свистящего_Хна
хуясе!
ты имел ввиду что статический storage нельзя сделать, адля массива можно?
какой багор)))
я просто вообще нитак тебя понял
Нельзя же в си так структуры инициализировать
Самое интересное, что для функций такое есть: я могу объявить прототип функции, а реализацию написать ниже.
https://en.cppreference.com/w/c/language/declarations
> error: redefinition of 'll_node b'
А нестандартные расширения на этот случай есть типа __attribute__ в гцц и в Шланге?
https://pbs.twimg.com/media/Gll2uofWwAAAT4S?format=png&name=900x900
Гост, а что, ddosят хакеры всегда со своего домашенго IP?
«Интернет Эксплорер» специально тормозил, чтобы им было трудно уронить сайты.
И такие сайты, на которые вдвоём лучше не заходить.
начальство довольно
премия выросла
На погосте место для себя готовят смолоду
Заводы рабочим от зари до зари
И чтоб кровавым потом захлебнулись эти твари
https://pbs.twimg.com/media/GKEpSauXcAAkDT2?format=jpg&name=small