Re: [問題] 二維陣列回傳問題
※ 引述《jack58 (願主陪著你)》之銘言:
: 我想請問一下 二維陣列回傳到main function中要如何回傳?
: 我一直嘗試一個二維的回傳都會產生下列問題
: error: cannot convert 'int (*)[3]' to 'int**'
: 以下是我嘗試的小程式
: #include<stdio.h>
: #include <stdlib.h>
: #include<math.h>
: #include<time.h>
: int **matrix_add(int *[3],int);
: main()
: {
: int a,b;
: int *receive[3];
: int matrix[3][3]={{0},{0},{0}};
: for(b=0;b<3;b++)
: {
: printf("add:\n");
: scanf("%d",&a);
: receive=matrix_add(matrix,a);
: printf(" %d %d %d \n",receive[0][0],receive[1][0],receive[2][0]);
: }
: }
: int **matrix_add(int *mat[3],int value)
: {
: int i,k;
: for(k=0;k<3;k++)
: {
: for(i=0;i<3;i++)
: {
: *(*(mat+i)+k)=*(*(mat+i)+k)+value;
: }
: }
: return mat;
: }
以下是一維的陣列計算 是可以compile過的
可是上面那一篇我希望嘗試二維陣列回傳位置的話就會錯~
所以我的問題因該是卡在怎麼表示副函式回傳位置的形式式正確的? @@+
#include<stdio.h>
#include <stdlib.h>
#include<math.h>
#include<time.h>
int *matrix_add(int *,int);
main()
{
int a,b;
int *receive;
int matrix[3]={0,0,0};
for(b=0;b<3;b++)
{
printf("add:\n");
scanf("%d",&a);
receive=matrix_add(matrix,a);
printf(" %d %d %d \n",receive[0],receive[1],receive[2]);
}
}
int *matrix_add(int *mat,int value)
{
int i,k;
for(i=0;i<3;i++)
{
*(mat+i)=*(mat+i)+value;
}
return mat;
}
--
推
04/09 10:44,
04/09 10:44
推
04/09 10:45,
04/09 10:45
→
04/09 10:45,
04/09 10:45
→
04/09 10:46,
04/09 10:46
→
04/09 10:46,
04/09 10:46
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.123.28.236
推
05/28 21:05, , 1F
05/28 21:05, 1F
→
05/28 21:06, , 2F
05/28 21:06, 2F
→
05/28 21:08, , 3F
05/28 21:08, 3F
→
05/28 21:10, , 4F
05/28 21:10, 4F
推
05/28 21:14, , 5F
05/28 21:14, 5F
→
05/28 21:14, , 6F
05/28 21:14, 6F
→
05/28 21:15, , 7F
05/28 21:15, 7F
→
05/28 21:16, , 8F
05/28 21:16, 8F
推
05/28 21:26, , 9F
05/28 21:26, 9F
推
05/28 21:30, , 10F
05/28 21:30, 10F
→
05/28 21:41, , 11F
05/28 21:41, 11F
推
05/28 22:02, , 12F
05/28 22:02, 12F
推
05/28 22:23, , 13F
05/28 22:23, 13F
討論串 (同標題文章)