綁定帳號登入

Android 台灣中文網

tag 標籤: 陣列

相關帖子

版塊 作者 回覆/查看 最後發表

相關日誌

分享 C 語言完成基本動態陣列處理
jianrupan 2020-2-20 14:27
#include stdlib.h #include string.h typedef struct { int size1; // 陣列使用空間 int count1; // count 參數 char doc ; // 文字陣列 } Array1; typedef struct { int size2; // item 使用空間 int count2; // item 陣列數量 Array1 *item; // 動態陣列指標 } Array2; // 動態陣列的資料結構 Array2 array2; // 建立 array2 陣列 void CreateArray2(Array2 *array) { array-count2 = 0; // 初始參數 array-size2 = 0; // 初始參數 } // array1 陣列 加入 array2 陣列 void AddArray2(Array2 *array2, Array1 *array1) { int addSize = array1-size1; // 要加入的空間 int oriSize = array2-size2; // 原來的使用空間 array2-size2 += array1-size1; // array2 item 記憶空間變大 int newSize = array2-size2; // 添加後的使用空間 // 重新宣告記憶塊 Array1 *newItems = (Array1 *)malloc(newSize); // 搬移 原本 array2 item memcpy(newItems, array2-item, oriSize); // 釋放 原本 array2 item 記憶體宣告 free(array2-item); // 重新指定 array2 item 記憶體 位置 array2-item = newItems; // 搬移 array1 到 array2 item memcpy(array2-item , array1, addSize); // 紀錄 array2 item 數量 array2-count2++; } int main( void ) { char *names ); // 加入 array1 文字 參數 printf("add array1 size: %d ", array1.size1); printf("add array1 name: %s ", array1.doc); AddArray2(array2, array1); // 加入父結構 } // 顯示結果 printf("arrar2 item total size: %d ", array2.size2); printf("arrar2 item total count: %d ", array2.count2); for (i=0; iarray2.count2; i++) { printf("arrar2 item size: %d ", i, array2.item .size1); printf("arrar2 item count: %d ", i, array2.item .count1); printf("arrar2 item doc: %s ", i, array2.item .doc); } } 顯示結果: add array1 size: 24 add array1 name: John add array1 size: 24 add array1 name: Mary add array1 size: 24 add array1 name: George add array1 size: 24 add array1 name: Bob add array1 size: 24 add array1 name: Tony arrar2 item total size: 120 -- 子結構總共使用空間 arrar2 item total count: 5 -- 總共添加筆數 arrar2 item size: 24 arrar2 item count: 0 arrar2 item doc: John arrar2 item size: 24 arrar2 item count: 1 arrar2 item doc: Mary arrar2 item size: 24 arrar2 item count: 2 arrar2 item doc: George arrar2 item size: 24 arrar2 item count: 3 arrar2 item doc: Bob arrar2 item size: 24 arrar2 item count: 4 arrar2 item doc: Tony
個人分類: 軟體應用|283 次閱讀|0 個評論