Ich habe eine Matrix dynamisch wie folgt deklariertGröße einer Matrix dynamisch auf C erklärt
double **y;
y = (double **)malloc(n*sizeof(double *));
for(i=0;i<n;i++)
y[i]=(double*)malloc(m*sizeof(double));
Wo m und n ganze Zahlen sind, bevor erklärt. Dann muss ich eine Funktion berechnen, die zwei verschiedene Matrix multipliziert, und ich muss überprüfen, ob die Anzahl der Zeilen in der ersten Matrix mit der Anzahl der Spalten in der zweiten Matrix übereinstimmt. Also muss ich die Anzahl der Spalten und Zeilen wissen. So berechnet ich, was folgt:
int k=sizeof(M[0])/sizeof(double);
Aber diese ganze Zahl k gibt mir 1. Und kein matther wie lange n und m ...
Was mache ich falsch?
Danke und Entschuldigung für mein Englisch.
bekommen 'n * m' ist Ihre Größe. –
Wirf auch nicht den von 'malloc()' zurückgegebenen Wert. Siehe: http://Stackoverflow.com/q/605845/5399734 –
Verwenden Sie int nicht für eine Größe, verwenden Sie immer size_t oder ptrdiff_t – 12431234123412341234123