To be more specific, I'm struggling to comprehend why this fails in compilation:
int array[] = {4, 3, 2, 1};
typeof(array) __array_copy = (array);
with the error being:
main.c: In function 'test_map':
main.c:113: error: invalid initializer
However this works:
int array[] = {4, 3, 2, 1};
typeof(*array) *__array_copy = (array);
What exactly is the difference between typeof(array)
vs typeof(*array) *
?