Как изобразить точечную фигуру на боке с описанием и отдельным массивом fill_color?

Одна ошибка с alloca заключается в том, что longjmp перематывает ее назад.

То есть, если вы сохраняете контекст с setjmp, тогда alloca некоторое количество памяти, тогда longjmp в контексте вы можете потерять память alloca (без какого-либо уведомления). Указатель стека возвращается туда, где он был, и поэтому память больше не сохраняется; если вы вызываете функцию или выполняете другую alloca, вы будете clobber оригинала alloca.

Кстати, это обеспечивает правдоподобный механизм преднамеренного освобождения памяти, который был выделен с помощью alloca.

Это нигде не документировано; конечно, описание ISO C setjmp ничего не говорит о взаимодействиях с alloca, так как не описывает такую ​​функцию. Реализации, которые предоставляют alloca, также не документируют это.

Фокус обычно заключается в том, что память alloca связана с активацией функции , а не с каким-либо блоком ; что несколько вызовов alloca просто захватывают больше памяти стека, которые все освобождаются при завершении функции. Не так; память фактически связана с контекстом процедуры. Когда контекст восстанавливается с помощью longjmp, так же, как и предыдущее состояние alloca.

Я столкнулся с этим, что я знаю.

0
задан 0x90 22 January 2019 в 03:35
поделиться

1 ответ

Вы не сказали scatter использовать цветовые данные из вашего источника данных:

p.scatter(x='x', y='y', fill_color='fill_color', source=source)
0
ответ дан bigreddot 22 January 2019 в 03:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: