2016-10-10 112 views
0

我已經對malloc矩陣有了一個想法,如果它是int**但使用typedef,我覺得有一個想法,但我不太確定。使用typedef動態分配矩陣

​​

我這樣做嗎?

APSP = (APSPMatrix*)malloc(sizeof(APSPMatrix)); 

但是,當我訪問我會必須使用*APSP[0][0],我不知道如何在memset/memcpy使用此。

有沒有適當的方法來做到這一點?在動態分配和訪問。

+1

什麼是APSPMatrix?你的意思是'LabeledAdjMatrix'嗎? –

+0

哦拍是的。有一個'#define APSPMatrix LabeledAdjMatrix'。我忘了包括那些woops。 –

+0

@ * APSP [0] [0]' - >'(* APSP)[0] [0]' – BLUEPIXY

回答

1

我的建議是不使用數組typedef,它們使代碼難以閱讀,因爲當數組指針衰減正在或未發生時它不那麼明顯。

如果你想分配一個連續的數組,你可以寫:

int (*APSP)[SIZE] = malloc(sizeof(int[SIZE][SIZE])); 

,然後訪問它APSP[0][0]

有關你們的會談「的malloc就好像它是int **」中,我假設你的意思是你想爲每個行獨立的分配......但你會寫int **APSP和寫一個循環來分配各行,它是真的和[SIZE][SIZE]無關。

+0

不幸的是,這是我的教授誰做了typedef,而不是我,我應該使用它。 :-( –