return 222;
}
void* call(void* a) {
printf("start\n");
// тут уже некий псевдокод, потому что не могу допереть как правильно сделать любой возращаемый тип
void* a = (((void(*)())a)());
printf("end\n");
return a;
}
int main(int argc, char** argv) {
void* c = call((void*)x);
void* c2 = call((void*)q);
char z = *((char*)c);
int z2 = *((int*)c2);
return 0;
}
как это профиксить, где строка с комментарием?
Никак. Компилятор должен знать возвращаемый тип, чтобы понимать сколько данных класть на стек Можно возвращать динамически проаллоцированные данные, но это большая потеря в производительности
Обсуждают сегодня