Ein Lösungsvorschlag zur Aufgabe Matrix-Addition.
#include<stdio.h>
// define Rows and Cols
#define ROWS 3
#define COLS 3
void fillArray(int *x,int rows, int cols);
void printArray(int *x, int rows, int cols);
int matrixAdd(int *a, int *b, int *c, int rows, int cols);
int  main() {
	// Test
	int a[ROWS][COLS], b[ROWS][COLS], c[ROWS][COLS];
	// Matrizen mit Werten füllen
	fillArray(&a[0][0], ROWS, COLS);
	fillArray(&b[0][0], ROWS, COLS);
	// Matrix A und B addieren und in Matrix C schreiben
	matrixAdd(&a[0][0], &b[0][0], &c[0][0], ROWS, COLS);
	// Ausgabe Matrizen
	printArray(&a[0][0], ROWS, COLS);
	printArray(&b[0][0], ROWS, COLS);
	printArray(&c[0][0], ROWS, COLS);
	
	return 0;
}
/*
	Matrix-Addition
	addiert Matrix a und b, Ergebnis wird in c gespeichert
	
	@author: www.c-howto.de
	@param *a: Zeiger auf int-Array
	@param *b: Zeiger auf int-Array
	@param *c: Zeiger auf int-Array
	@param rows: Zeilen der Felder
	@param rows: Spalten der Felder
*/
int matrixAdd(int *a, int *b, int *c, int rows, int cols) {
	int i, j;
	for(i=0; i<rows; i++) {
		for(j=0; j<cols; j++) {
			*(c+(i*cols)+j) = *(a+(i*cols)+j) + *(b+(i*cols)+j);
		}
		printf("\n");
	}
}
void fillArray(int *x,int rows, int cols) {
	int c=1, i, j;
	for(i=0; i<rows; i++) {
		for(j=0; j<cols; j++) {
		*(x+(i*cols)+j) = c;
		c++;
		}
	}
}
void printArray(int *x, int rows, int cols) {
	int i, j;
	printf("\n\n");
	for(i=0; i<rows; i++) {
		for(j=0; j<cols; j++) {
			printf(" %d",*(x+(i*cols)+j));
		}
		printf("\n");
	}
}
1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 2 4 6 8 10 12 14 16 18
