作者softwind (software everywhere)
看板C_and_CPP
標題Re: [問題] 請問c可以寫非對稱的多維陣列嗎??
時間Sat Jul 9 01:08:45 2011
※ 引述《spiderman007 (千里之外)》之銘言:
: 開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
: dev-c
: 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
: 問題(Question):
: 如題...
: 可以將資料用二維陣列寫入非對稱的多維陣列嗎?? 如下
: 1
: 1 2
: 1 2 3
: 1 2 3 4
: 再show出來嗎??
: 餵入的資料(Input):
: 預期的正確結果(Expected Output):
: 錯誤結果(Wrong Output):
: 程式碼(Code):(請善用置底文網頁, 記得排版)
: 補充說明(Supplement):
XD 終於有小弟可以回的問題了~~~
這個嘛... 我是不知道 大部分人怎麼做啦
但是 我接過一些些案子 看過一些些 platform or 3rd lib.
對於長度未定的array 在C裡面 最好的解法是 sized array.
ex:
struct myStruct; // 前置宣告
struct szArray{
unsigned int len; //這個放長度
struct myStruct *pData; // 這個放 pointer指向instance.
};
so 我想你的要求 code類似這樣
struct szArray{
unsigned int len;
int *pData;
};
struct szArray my_array[4];
for( int i=0; i<4; i++){
szArray *pa=&my_array[i];
pa->len=i+1;
pa->pData = calloc( sizeof(int), i+1 );
/* init internal array */
}
------ how to show? -------
for( int i=0; i<4; i++){
szArray *pa=&my_array[i];
for( int j=0; j<pa->len; j++)
printf("%d ", pa->pData[j];
printf("\n");
}
--
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.170.64.171
→ angleevil:不能直接用printf("%d ", my_array[j]);嗎?竟然你督用 07/09 06:27
→ angleevil:pointer去間街取值,在how to show那邊就直接印吧! 07/09 06:29
→ firejox:你沒有typedef.... 07/09 09:22