относительно вопроса:
int * t1 = {1,2,3}; // how this line of code compiles
Ниже приведены результаты попытки компиляции:
int main( void )
{
int * t1 = {1,2,3};
}
, которые я поместил в файл с именем 'untitled2.c'
gcc -ggdb -Wall -Wextra -Wconversion -pedantic -std=gnu11 -c "untitled2.c"
untitled2.c: In function ‘main’:
untitled2.c:7:14: warning: initialization makes pointer from integer without a cast [-Wint-conversion]
int * t1 = {1,2,3};
^
untitled2.c:7:14: note: (near initialization for ‘t1’)
untitled2.c:7:16: warning: excess elements in scalar initializer
int * t1 = {1,2,3};
^
untitled2.c:7:16: note: (near initialization for ‘t1’)
untitled2.c:7:18: warning: excess elements in scalar initializer
int * t1 = {1,2,3};
^
untitled2.c:7:18: note: (near initialization for ‘t1’)
untitled2.c:7:8: warning: unused variable ‘t1’ [-Wunused-variable]
int * t1 = {1,2,3};
^~
Итак, как это компилируется?Это не