As direct conversion to void **
of other types is not valid is this conversion valid in C?
void swapValues(void **av, void **bv, size_t size)
{
int *a = *av;
int *b = *bv;
char array[size];
memcpy(array, a, size);
memcpy(a, b, size);
memcpy(b, array, size);
}
int main()
{
int i = 3;
int j = 5;
int *x = &i;
int *y = &j;
void *p = &i;
void *q = &j;
//this is invalid
swapValues(&x, &y, sizeof(i));
//is this valid
swapValues(&p, &q, sizeof(i));
}