[問題] 二維陣列函數問題
我知道我有一個函數func(int* array),array 是一個二維矩陣,
可是我無法去修改函數內容,
想要將該陣列取出,
所以寫了下面程式測試,
卻發現取出完全不相同的東西,
還有請版上的高手開導一下,
感恩
開發平台: dev C++
測資輸入:
#include <stdio.h>
#include <stdlib.h>
void func(int*);
int matrix[3][3]={{14,23,42}, {23,423,14}, {34,34,53,}};
int main(void)
{
int *ptr;
int i, j;
ptr=(int*)malloc(sizeof(int)*3*3);
func(ptr);
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
printf("ptr[%d*3+%d]=%d\n",i,j,*(ptr+i*3+j));
}
free(ptr);
system("pause");
return 0;
}
void func(int* array)
{
int i, j;
array=(int*)malloc(sizeof(int)*3*3);
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
array[i*3+j]=matrix[i][j];
printf("array[%d*3+%d]=%d\n",i,j,*(array+i*3+j));
}
}
return;
}
輸出結果:
array{0*3*0]=14
array[0*3*1]=23
.
.
.
.
.
ptr[0*3*0]=4064384
ptr[0*3*1]=4064384
.
.
.
補充說明: 只是用ptr去取代array 為何輸出結果會不相同呢??
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.110.200.124
推
10/23 14:36, , 1F
10/23 14:36, 1F
→
10/23 14:36, , 2F
10/23 14:36, 2F
→
10/23 14:37, , 3F
10/23 14:37, 3F
推
10/23 14:45, , 4F
10/23 14:45, 4F
→
10/23 14:45, , 5F
10/23 14:45, 5F
→
10/23 15:43, , 6F
10/23 15:43, 6F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章