作者Dannvix (Dannvix)
看板C_and_CPP
標題Re: [問題] 在不同function存取array
時間Wed Apr 21 15:15:00 2010
※ 引述《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)
推 shuming1008:太酷了你,謝謝你,我想這裡應該有我要的東西了 04/21 22:03
→ shuming1008:真的非常謝謝你 04/21 22:04
→ Dannvix:第二種作法你要記得 free() 04/21 22:34