Tam Sürümünü Görmek İçin : iki Boyutlu Matrisin Fonksiyona gönderilmesi
iki boyutlu matris Fonksiyona nasıl yollanır biçok şey denedim ama olmadı
double fonk(int **S);
dediimde hata oluyor
elimdeki bir kitap en az bir boyutunu belirtmem gerektiğini soyliyor
ama bi uygulama yok nasıl yapmalıyım acaba :sus:
karamemed
23/08/2005, 08:18
double fonk(int **S)
{
int** matrisim = S;
cout<<matrisim[2][0]<<endl;
cout<<matrisim[0][1]<<endl;
return 0;
}
int main()
{
//matrisim[3][2] oluştur
int ** matrisim= new int*[3];
for(int i=0; i<3 ;i++)
matrisim[i] = new int[2];
matrisim[2][0] = 92;
matrisim[0][1] = 45;
fonk(matrisim);
return 0;
}
Çıktı:
92
45
Matrisi böyle dinamik olarak oluşturunca çalışıyor, fakat statik dizi ile çalışmıyor. Biraz daha uğraşayım bakalım nolcak.
karamemed
23/08/2005, 08:26
Bu da statik hali.
double fonk(int S[3][2])
{
cout<<S[2][0]<<endl;
cout<<S[0][1]<<endl;
return 0;
}
int main()
{
int matrisim[3][2];
matrisim[2][0] = 92;
matrisim[0][1] = 45;
fonk(matrisim);
return 0;
}
Yaww sanki dinamik için ayrı, statik için ayrı kod yazmıyorduk.
dizinin sadece ikinci boyutunu belirtmek yeterli.
#include<iostream>
using namespace std;
void fonksiyon(int m [][15] )
{
cout<< m [5] [10];
m [5] [10] = 25;
}
int main()
{
int matris [10] [15];
matris [5] [10] = 23;
fonksiyon(matris);
cout << matris [5] [10];
return 0;
}
statik matris ile çalışırken typedef ile kodu güzelleştirmek mümkün.
typedef int Matris2d[2][2] ;
void foo( Matris2d m ){
};
int main()
{
Matris2d martis = { {0,1} , {1,2} };
}
dizilieri diziler yerine işaretçileri ile fonksiyona yollabiliyorum o zaman vektörler için buna benzer bişey varmı :super:
Forum Yazılımı : vBulletin v3.6.8, Copyright ©2000-2008, Jelsoft Enterprises Ltd.