Fragen zur SI-Sprache - Seite 9

 
Кеша Рутов:

Inmine_score ist *m ein Zeiger auf int, und der Kommentar besagt, dass es sich um ein Array handelt, d.h. für jede Zeile eine andere Anzahl von Spalten, dies wird als "Kamm-Array" bezeichnet, nicht als rechteckiges Array.

Es wird lediglich Speicher für dieses Array von Zeilenlängen zugewiesen, keine Werte

Für die Matrix M selbst.

hier wird Speicher für Zeiger auf Zeilen zugewiesen

und hier für die Spalten

Ja, ich werde die Struktur wahrscheinlich an Ort und Stelle lassen müssen, damit es später keine Verwirrung gibt.

Ich wollte sie gerade durch eine Matrix ersetzen.

 
Maxim Dmitrievsky:

Ja, wir müssen wahrscheinlich die Struktur beibehalten, damit wir später nicht durcheinander kommen.

Ich wollte sie nur durch eine Matrix ersetzen.

Genau, um nicht durcheinander zu kommen, es gab eine Zeit, in der ich auch Enums, Extra-Strukturen und so weiter verweigert habe, alles, worauf man verzichten kann, und dann schaut man sich diesen Code nach ein paar Monaten an und es ist einfacher, ihn von Grund auf neu zu schreiben, ganz zu schweigen von anderen Betrachtern, man kann wirklich in Verlegenheit geraten. Außerdem werden in Sys und Plus Standard-Arrays, wenn sie zugewiesen und an eine Funktion übergeben werden, zu Referenzen, es gibt keine Möglichkeit, die Größe und Struktur in vielen Fällen herauszufinden, es ist bereits klar über dynamische, es ist nicht einmal ein Array, sondern nur ein Stück Speicher in Form eines Zeigers auf das erste Element.

 
 if (param->est == EST_MIC_APPROX)
        ret = OptimizeXAxis(xx, yx, prob->n, Q_map, q, P_map, p, score->m[i]+1,
                            score->M[i]);

Das ist, wo ich bekam, wenn zuvor deklariert 2-dimensionalen Array M(double **M; /* die (equi)charakteristische Matrix */), aber diese f-i übergeben nur eine "Kamm" Zeichenfolge M[i]... und auf µl bereits durch Matrizen gemacht. Und jetzt fluche ich schon lange.

Aber vielleicht ist das Problem weit hergeholt.

 
Ich mag Wissenschaft und Technik Rap über Chttps://www.youtube.com/watch?v=cdX8r3ZSzN4
 

***

 
Konstantin Nikitin:

bazhenovivansergeevich an Freelance

ein bisschen mehr und er wird verbannt :-)

wenn ein freundlicher Moderator den vorherigen nicht löscht.

 
Maxim Kuznetsov:

Ein bisschen mehr und er wird verbannt :-)

wenn ein freundlicher Moderator den alten nicht löscht.

Nun, manchmal kann eine Banja helfen, den Kopf frei zu bekommen.

 

was dieses Konstrukt am Ende ergibt:

typedef struct TF_Status TF_Status;
TF_Status* TF_NewStatus();

Ich habe mir die Größe vonTF_Status angesehen - wenn die Kompilierung 32-Bit ist, sind es 4 Byte, wenn sie 64-Bit ist, sind es 8 Byte.

Ich kann nicht herausfinden, wasTF_NewStatus()zurückgibt?

 
Igor Makanu:

was dieses Konstrukt am Ende ergibt:

Ich habe mir die Größe vonTF_Status angesehen - wenn die Kompilierung 32-Bit ist, sind es 4 Byte, wenn sie 64-Bit ist, sind es 8 Byte.

Ich kann nicht herausfinden, wasTF_NewStatus()zurückgibt?

Wenn Sie es richtig schreiben, wird es den Zeiger auf die Struktur zurückgeben.
Grund der Beschwerde: