Re: [問題] 在不同function存取array

看板C_and_CPP (C/C++)作者 (Dannvix)時間16年前 (2010/04/21 15:15), 編輯推噓1(102)
留言3則, 2人參與, 最新討論串2/2 (看更多)
※ 引述《shuming1008 (打工打工..)》之銘言: : 遇到的問題: : 我在function_a裡面,我令了一個array_123 : 並做了一些運算,將值存放於array_123中 : 離開function_a之後 : 那我要如何在function_b中將array_123中的值取出來使用呢 : 我本來以為都會存放在記憶體中可以直接拿出來用 : 但似乎並不是這麼簡單 : 請問有沒有什麼方式可以使用呢 : 我C實在是有點弱唉唉 我想到三種滿直觀的做法,不過不知道好不好 XD 第一種作法... void function_a (int array[]); void function_b (int array[]); main () { int array[100]; function_a(array); function_b(array); } 第二種作法... int* function_a (); void function_b (int *array); main () { function_b(function_a()); } int* function_a () { int *ary = (int *) malloc(sizeof(int) * 100); /*... do your tasks ...*/ return ary; } 第三種作法... typedef struct { int val[100]; } my_array; my_array function_a (); void function_b (my_array x); main () { my_array k = function_a(); function_b(k); } my_array function_a () { my_array z; /* ... do your tasks ... */ /* such as: */ /* for (int i = 0; i < 100; z.val[i++] = i); return z; } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.122.194.209 ※ 編輯: Dannvix 來自: 140.122.194.209 (04/21 15:17)

04/21 22:03, , 1F
太酷了你,謝謝你,我想這裡應該有我要的東西了
04/21 22:03, 1F

04/21 22:04, , 2F
真的非常謝謝你
04/21 22:04, 2F

04/21 22:34, , 3F
第二種作法你要記得 free()
04/21 22:34, 3F
文章代碼(AID): #1BpgNtKd (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1BpgNtKd (C_and_CPP)