PDA

Tam Sürümünü Görmek İçin : iki Boyutlu Matrisin Fonksiyona gönderilmesi


PUNK
23/08/2005, 07:09
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.

ortug
24/08/2005, 01:38
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;
}

mr1yh1
24/08/2005, 06:06
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} };

}

PUNK
26/08/2005, 06:11
dizilieri diziler yerine işaretçileri ile fonksiyona yollabiliyorum o zaman vektörler için buna benzer bişey varmı :super: