- 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
#include <malloc.h>
#include <string.h>
void print( void **p, int n ) {
int i = 0;
for(; i < n; ++i ) {
printf( "%x ", *( p + i ) );
}
printf( "\n" );
}
void get( void** pp, void** p ) {
*p = *pp;
}
void set( void** pp, void **p ) {
*pp = *p;
}
int main() {
printf( "sizeof: void* = %d, void** = %d\n", sizeof( void* ), sizeof( void** ) );
void ** pv = malloc( sizeof( void* ) * 8 ), **pp2;
memset( pv, 1, 8 * sizeof( void* ) );
printf( "pv = %x\n", pv );
print( pv, 8 );
pp2 = pv + 2 * sizeof( void** );
void *p = (void*)0x01020304c, *p2 = p;
*pp2 = p;
printf( "pv = %x, pp2 = %x, p=%x, p2 = %x\n", pv, pp2, p, p2 );
get( pv + 1, &p );
printf( "result get( pv + 1, &p ) -> *( pv + 1 ) = %x, p = %x\n", *( pv + 1 ), p );
set( pv + 2, &p2 );
printf( "result set( pv + 2 *, p2 ) -> *( pv + 2 ) = %x, p2 = %x\n", *( pv + 2 ), p2 );
print( pv, 8 );
free( pv );
return 0;
}
Просто оставлю это здесь, на будущее.
О том, как работать с void**.
З.Ы. Странная какая-то строка, зачем там вообще sizeof()?
Всё тревожное светло.
Плещет рдяный мак заката
На озёрное стекло.
И невольно в море хлеба
Рвётся образ с языка:
Отелившееся небо
Лижет красного телка.
То ли дело Forth:
Поэтому я за «intptr_t».
Именно поэтому я за «PDP-11» их нет и в сишке — она ж, ЕМНИП, как раз под «PDP-11» и делалась.
Ита каг?
Хотя бы из-за линейности: в крестах после быстрого взгляда ясно видно, что f — это функция, возвращающая функцию double -> int и принимающая double и функцию (int, double) -> double. А вот что за ебанутый шифр скрывается за сишным определением можно понять, только если каждый день по пол-часа курить мануал сишных указателей (я, кстати, когда-то подобную хрень мог даже руками писать… а потом за ненадобностью всё забылось — в отличие от простого и понятного крестового синтаксиса).
Нет, разумеется, есть тайпдефы — но если на говно положить газетку, говном оно быть не перестанет. читается на порядок лучше ебанутейшего
> читается на порядок лучше ебанутейшего
https://cs6.pikabu.ru/images/big_size_comm/2015-08_2/1438957724160145747.jpg
Может быть вы имели ввиду: "в отличие от простого и понятного крестового синтаксиса" ?
Если сложить джве ьесконечности, то получится ьесконечность?
По-моему получше твоей пидоросни с std::kokoko<std::kudah<kukarek>>
да и в целом инсталляция создает нечто неуловимое
или это перфоманс? выглядит, как кошка путина, только поближе
А ваш плюсовый std::array так умеет?
Одного typeof вполне достаточно
> Instances of std::function can store, copy, and invoke any Callable target -- functions, lambda expressions, bind expressions, or other function objects, as well as pointers to member functions and pointers to data members.
Пирформанс же падает!
В сишке-то нет никаких других Callable target