0
я следующий код:с использованием 'Экстерн' для целочисленных результатов массива в сбоем сегментации
file1.c
int arr[10];
file2.c
extern int *arr;
int main()
{
arr[0] = 1;
return 0;
}
Пожалуйста, объясните мне, почему доступ к arr в файле2.c приведет к сбою сегментации?
компилятор: gcc ОС: Linux.
extern int arr[10];
Может быть, есть причина, по которой первая одна называется «массив», в то время как второй называется «указатель»? – OlafВы не сказали компилятору правду, вы сказали, что есть переменная с именем 'arr', которая является указателем на int, но на самом деле это массив ints, который сильно отличается от указателя на int. – nos
@Olaf: yes 'pointer' arr, указывающий на первый элемент массива. –