001
18.12.2017, 19:46 Uhr
ao
(Operator)
|
Du sollst zuerst den Speicher für die Row-Pointer holen und in data speichern. Danach sollst du N-mal den Speicher für eine Zeile holen und jeweils einem Row-Pointer zuweisen. Für eine N-zeilige Matrix sind das also N+1 Aufrufe von xmalloc (was auch immer xmalloc tut - Standard ist das jedenfalls nicht).
Zitat: |
Weil meiner Meinung nach brauche ich ja ein 2 dimensionales Array z.B. a [5][3]. Jedoch habe ich keinen Schimmer wie ich diesen mit xmallac bzw. xcalloc allokiere..
|
Verabschiede dich am besten von der Vorstellung, dass du mit malloc ein explizit ein-, zwei- oder N-dimensionales Objekt holen kannst. Du holst immer nur einen zusammenhängenden Speicherblock, den du dann mit der nötigen Anzahl Indirektionen (das sind die Sternchen an der Pointervariable) als N-dimensionales Array interpretierst.
Aber darum gehts hier gar nicht. data soll ein Array von Pointern sein, die auf jeweils eine Zeile zeigen. Es ist nicht schlau, das Ding "data" zu nennen, weil das ne falsche Vorstellung von EINEM Stück Speicher weckt. "rows" wäre besser, und die Anzahlen dann n_rows und n_cols. Aber egal. Hol dir so viele Zeilenpointer wie nötig und dann hol dir für jeden dieser Pointer eine Zeile. |