看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《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