C語言函式返回值為二維陣列

2025-07-17 01:05:19 字數 2934 閱讀 6286

1樓:匿名使用者

用指標來實現;如void fun(int (*p)[5]);則不傳遞到指標p的二維陣列將會應為執行fun函式。改變~~

2樓:匿名使用者

函式不能返回乙個陣列,只能返回乙個變數,或位址 。如果你想直接返回乙個二維陣列,這是做不到的。你可以用下面的方法 ,先建乙個結構體。

struct array; array solve() 通過這種方法,來得到二維陣列。

c語言函式可以返回二維陣列首位址嗎

3樓:逆心小土豆

c語言中函式不能直接返回乙個二維陣列。但是可以通過其他方法實現類似功能:

1、把二維陣列定義為全域性變數 這樣可以直接在另乙個函式中呼叫2、把二維陣列作為指標傳入到第乙個函式中 然後同樣作為指標傳到另乙個函式中。

3、動態分配記憶體 在賦值函式中動態分配 並用返回值返回,在另乙個函式中進行訪問。

c語言 如何返回乙個二維陣列

4樓:網友

#include

#include // for malloc()// 返回乙個hilbert型別的(n * n)階矩陣double **hilbert(int n)}return arr;

/ 顯示二維陣列資訊。

void show(double **a,int n)printf("");

/ 釋放動態記憶體。

void freememory(double **a,int n)int main ()

5樓:網友

c語言,這裡用malloc(標頭檔案申請對空間。

int **a=(int **malloc(n*sizeof(int *)

int i;

for(i=0;i當然a可以定義為全域性變數。

int a[n][n];

放在main()函式之外,這樣本檔案裡任何乙個函式都能訪問。

6樓:網友

1、函式不能返回乙個陣列,只能返回乙個變數,或位址 。如果你想直接返回乙個二維陣列,這是做不到的。可以用下面的方法 ,先建乙個結構體。

struct array; array solve() 通過這種方法,來得到二維陣列。

2、陣列在作為函式返回值或者函式引數時,實際上只作為指標來返回或者傳遞的。因此返回值用指標資料型別。比如下面的**:int g_a[4] = ;

int * retn_arrary() //返回值用指標型別即要。

c語言,函式中如何返回二維陣列,用return和不用return兩種方法?

7樓:網友

直接用陣列做引數就行啊,因為那是位址傳遞,不用返回,

8樓:軍軍

陣列無法返回的,只能用指標方法。

9樓:網友

return 就直接返回可以了。

不用return 就將二維陣列的指標或者引用作為引數。

10樓:網友

用return的一般設為指標函式;不用return就直接位址專遞;

#include

#define n 3

void print(int a[n][n])int main()

二維用return 我不會 ,我這是一維。

c語言函式如何返回二維陣列?

11樓:000英魂

你這個二維陣列要動態分配的才行,不然儲存週期只在他的函式里面有效。

c語言如何讓函式返回二維陣列?

12樓:網友

你本身傳遞的就是陣列,並不需要返回陣列,直接在你的函式內更改二維陣列的值的就行了(注意,如果在是函式內建立的陣列,再返回會有問題,出了函式這個變數就無效了),比如如下。

#include

void fun(int (*pintptr)[4])int main()

int i,j;

fun(a);

for(i=0;i<4;i++)

如何返回函式內的二維陣列

13樓:草原上之狼

c語言中函式不能直接返回乙個二維陣列。但是可以通過其他方法實現類似功能:

1、把二維陣列定義為全域性變數 這樣可以直接在另乙個函式中呼叫2、把二維陣列作為指標傳入到第乙個函式中 然後同樣作為指標傳到另乙個函式中。

3、動態分配記憶體 在賦值函式中動態分配 並用返回值返回,在另乙個函式中進行訪問。

14樓:聽不清啊

把二維陣列作為形參來設計函式。

c語言中返回二維陣列

15樓:孟羽然

arr是在執行棧上的,fun()執行完畢返回時,棧上的東西就都釋放掉了。

所以要想返回二維陣列,只能用malloc在堆上分配記憶體。

當然,呼叫fun()的函式要負責free釋放記憶體。

16樓:網友

如果是在main中動態獲得陣列的值,那麼,最好在main裡面建立陣列,然後把陣列傳給fun進行修改,等fun返回以後,main獲得的就是修改後的陣列了。

void func(char array[1000][4])

main()

17樓:

把fun()中的陣列arr動態分配,然後返回其位址。main用完後釋放空間。

18樓:網友

#include

輸入引數: i,j陣列的下標。

輸出:指定下標陣列的值。

char * fun(int i,int j)int main(void)

c語言的函式返回值,c語言中,函式返回值怎麼用?

所謂返回值,就是人們想要知道函式或者程式所得到 的結果而設計的函式或者程式結束時給出一個值。比如 我們編寫一個加法函式,肯定想知道加完過後的結果是什麼,那麼我們就指定這個結果為該加法程式的返回值。關於返回值的返回 1 函式呼叫語句本身代表其返回值 例如 fun a 那麼 fun a 就是這個返回值。...

c語言二維陣列

因為你的s是一個二維陣列。如果你的s是一維陣列,像s 20 這樣,那麼在gets時不需要加 0 你定義的s是個二維陣列,並且是char型別,所以每一行存放一個字串。s n 代表第n 1行,而gets時的引數需要是一個字串指標,或者字串陣列名,所以這裡必須要寫作gets s n 其中0 n 20 我明...

c 類函式中怎麼返回和使用二維陣列

include using namespace std class foo foo foo foo foo 返回指向二維陣列的指標函式 int foo test2darray unsigned r,unsigned c return arr2d int main cout endl 釋放記憶體 fo...