Я знаю, что это не сработает, потому что я не могу сделать арифметику c для void:
int main (void) {
void *ar = malloc(25); //adress of int + adr of char + adr of int = 3 * 8 + 1 null
int a =4;
int b =6;
*(ar+0)=&a //adr of first int - 8 bytes
*(ar+8)="abc\0"; // adr of the first char - 8 bytes
*(ar+16)=&b; // adr of the second int - 8 bytes
ar[24] = NULL;
return 0;
}
Так что вопрос в том, как создать буфер произвольного типа, только в соответствии с его шириной байта (в частности, буфер в этом случае будет содержать 3 адреса произвольных типов, но это не должно иметь значения, поскольку все адреса имеют длину 8 байт)?
Как включить компилятор для выполнения арифметических операций c on (void*)
по мнению программистов намерены? (потому что я указываю, какой длины буфера я хочу двигаться вперед, чтобы достичь первого байта, с которого начинается).