--- /dev/null
+#include <stdio.h>
+
+int *pelemente, *pmatrix1, *pmatrix2;
+
+void read_matrix ( int *pzeilen, int *pspalten ) {
+
+ /* abfragen der anzahl der zeilen und spalten. eintrag auf pointer. */
+ int i,j,temp,zeilen,spalten;
+ printf("Anzahl der Zeilen eingeben: ");
+ scanf("%d",&zeilen);
+ *pzeilen=zeilen;
+ printf("Anzahl der Spalten eingeben: ");
+ scanf("%d",&spalten);
+ *pspalten=spalten;
+
+ /* memory allocation */
+ pelemente=(int *)malloc(zeilen*spalten * sizeof(int));
+
+ /* abfragen der elemente */
+ for (i=0;i<zeilen;++i) {
+ for (j=0;j<spalten;++j) {
+ printf("Element: %d. Spalte und %d. Zeile: ",j+1,i+1);
+ scanf("%d",&temp);
+ /* speichern der elemente */
+ *(pelemente + i*spalten + j)=temp;
+ }
+ }
+
+ return;
+}
+
+void write_matrix ( int zeilen, int spalten ) {
+
+ /* matrix ausgeben */
+ int i,j,temp;
+ for (i=0;i<zeilen;++i) {
+ for (j=0;j<spalten;++j) {
+ temp=*(pelemente + i*spalten + j);
+ printf("%03d\t",temp);
+ }
+ printf("\n");
+ }
+ return;
+}
+
+int main() {
+
+int z1,z2;
+int s1,s2;
+int i,j,k,ergebnis;
+
+read_matrix(&z1,&s1);
+
+pmatrix1=(int *)malloc(z1*s1 * sizeof(int));
+*pmatrix1=*pelemente;
+
+free( *pelemente );
+
+read_matrix(&z2,&s2);
+
+pmatrix2=(int *)malloc(z2*s2 * sizeof(int));
+*pmatrix2=*pelemente;
+
+free( *pelemente );
+
+
+if ( s1!=z2 ) {
+ printf("Nicht definiert!\n");
+ return;
+}
+
+for (i=0;i<z1;i++) {
+ for (j=0;j<s2;j++) {
+ for (k=0;k<s1;++k) ergebnis+=(*(pmatrix1 + i*s1 + k) * *(pmatrix2 + k*s2 + j));
+ *(pelemente + i*s2 + j)=ergebnis;
+ }
+}
+
+
+write_matrix(z1,s2);
+
+return;
+}