Я пытаюсь добавить две матрицы, используя следующий код:Returing массив
#include <stdio.h>
int matrix (void)
{
int a[2][2];
int b[2][2];
int c[2][2];
int i, j;
for (i = 0; i < 2; ++i) {
for (j = 0; j < 2; ++j) {
scanf("%d", &a[i][j]);
}
}
for (i = 0; i < 2; ++i) {
for (j = 0; j < 2; ++j) {
scanf("%d", &b[i][j]);
}
}
for (i = 0; i < 2; ++i) {
for (j = 0; j < 2; ++j) {
c[i][j] = a[i][j] + b[i][j];
}
}
return c;
}
int main()
{
int i, j;
int c[2][2];
c = matrix();
for (i = 0; i < 2; ++i) {
for (j = 0; j < 2; ++j) {
printf("%d", c[i][j]);
}
printf("\n");
}
return 0;
}
Приведенный выше код бросает много ошибок. Объясните, почему так много ошибок отображается моим компилятором.
EDIT- Я использовал GCC 4.4.3 при компиляции выше кода.
EDIT2 - У меня были следующие ошибки и предупреждения при компиляции кода выше.
test.c: In function ‘matrix’:
test.c:23: warning: return makes integer from pointer without a cast
test.c:23: warning: function returns address of local variable
test.c: In function ‘main’:
test.c:29: error: incompatible types when assigning to type ‘int[2][2]’ from type ‘int’
И что бы эти ошибки? –
Какой это компилятор? – XORcist
Вы получаете много предупреждений заранее: http://ideone.com/FkqAER - в основном при обработке указателей как целых чисел. – birryree