folder Tahribat.com Forumları
linefolder C - C++
linefolder 2 Boyutlu Array'leri Fonksiyonla Çağırma



2 Boyutlu Array'leri Fonksiyonla Çağırma

  1. KısayolKısayol pmÖzel Mesaj
    afer
    afer's avatar
    Kayıt Tarihi: 03/Nisan/2012
    Erkek

    merhabalar, c++'ta kod yazıyorum. şöyle bir sorunum var. 2 boyutlu bir array'i fonksiyonla çağıracağım, şimdi array'in sütun bilgisine fonksiyon tanımında bi ihtiyaç var, fakat ben arrayin boyutunu sonradan kullanıcıdan alıyorum, fonksiyon tanımlama  işlemini nasıl gerçekleştiririm?

    Örnekle açıklayacak olursak:

    void fonksiyon(int array[][size], int size) //compiler buna izin vermiyor

    {

      //fonksiyonun gövdesi

    }

    int main()

    {

       int size;

       cout << "Array boyutunu giriniz:"; //

       cin >> size;

       int array[size][size] = {0}; //kare bir matris oluşturuyoruz.

       fonksiyon(array, size);

    }

  2. KısayolKısayol pmÖzel Mesaj
    splintercell
    splintercell's avatar
    Kayıt Tarihi: 28/Eylül/2008
    Erkek

    işaretçi kullanman gerekiyor böyle bişeyi gerçekleştirmek için

  3. KısayolKısayol pmÖzel Mesaj
    DeadSoul
    DeadSoul's avatar
    Kayıt Tarihi: 12/Mayıs/2012
    Erkek

    int array[size][size]; hatalı bir tanım, array boyutu sabit olmalı bunu dinamik bellek ayırma yöntemi ile yapabilirsiniz.

  4. KısayolKısayol pmÖzel Mesaj
    uLtRaLoVeR
    uLtRaLoVeR's avatar
    Kayıt Tarihi: 25/Haziran/2007
    Erkek

    int **matrix = new int [size][size] şeklinde oluştur array i

    Fonksiyon parametresi olarak da int** ve size alarak yapabilirsin

    Mantığı böyle de şuan kafam iyi değil yanlış yazmış olabilirim

    uLtRaLoVeR tarafından 05/Ağu/13 00:28 tarihinde düzenlenmiştir
  5. KısayolKısayol pmÖzel Mesaj
    DuPi
    DuPi's avatar
    Kayıt Tarihi: 21/Ağustos/2005
    Erkek

    fonksiyon arrayx(int x,int y)

    {

      int degisken[x][y];

    }

     

    böyle fonksiyonun dışından parametreyi girip fonksiyonun içinde arrayı oluşturmak sıkıntı yapar mı?

  6. KısayolKısayol pmÖzel Mesaj
    kvasir
    kvasir's avatar
    Kayıt Tarihi: 24/Ağustos/2005
    Erkek

    C++ bilmiyorum ama oluyorsa array içinde array oluşturabilirsin çözüm olarak. 2B oluşturursan direk boyutunu ister fakat

    OrnekArray = ["1","2", new Array()]

    gibi bir kullanımla eleman gibi array oluşturabilirsin bence sonradan, c++ izin verir mi bilmiyorum ama.

  7. KısayolKısayol pmÖzel Mesaj
    uLtRaLoVeR
    uLtRaLoVeR's avatar
    Kayıt Tarihi: 25/Haziran/2007
    Erkek
    DuPi bunu yazdı

    fonksiyon arrayx(int x,int y)

    {

      int degisken[x][y];

    }

     

    böyle fonksiyonun dışından parametreyi girip fonksiyonun içinde arrayı oluşturmak sıkıntı yapar mı?

    ne amaçla kullanacağına bağlı eğer fonksiyonu çağırdığın yerdeki bir arrayin içindeki bilgiyi fonksiyon içerisinde kullanmak istiyorsan böyle yapamazsın. eğer fonksiyonda böyle oluşturup bunu dönmek istersen, fonksiyon bitince array silineceğinden seg-fault alırsın. Ama ben array'i oluşturacam kullanacam ama başka birşey dönecem diyorsan bunu yapabilirsin

  8. KısayolKısayol pmÖzel Mesaj
    splintercell
    splintercell's avatar
    Kayıt Tarihi: 28/Eylül/2008
    Erkek

    #include <iostream>

    using namespace std;

    void fonksiyon(int **array, int size)
    {
        for(int i=0;i<size;i++)
        {
            for(int j=0;j<size;j++)
            cout<<array[i][j]<<" ";
            cout<<endl;
        }
    }

    int main()
    {
       int size;
       cout << "Array boyutunu giriniz:"; //
       cin >> size;

       int **array=new int*[size];
       for(int i=0;i<size;i++)
        array[i]=new int[size];

        for(int i=0;i<size;i++)
        {
            for(int j=0;j<size;j++)
            array[i][j]=size;
        }

       fonksiyon(array, size);

    }

     

    işaretçilerle ilgili örnek

    splintercell tarafından 19/Ağu/13 17:42 tarihinde düzenlenmiştir
  9. KısayolKısayol pmÖzel Mesaj
    Fatih54
    Fatih54's avatar
    Kayıt Tarihi: 16/Ağustos/2012
    Erkek

    Performans düşüklüğü önemli değilse string olarak tut şöyle ayır

    "1.veri#2.veri"

    sonra da strtok vb. ile # den ayırıp kullan.

    Diğer türlü işaretçi ile olabilir.

  10. KısayolKısayol pmÖzel Mesaj
    SinusX
    SinusX's avatar
    Kayıt Tarihi: 14/Aralık/2010
    Erkek

    malloc(sizeof(size)) gibi bişey yemiyor mu

  11. KısayolKısayol pmÖzel Mesaj
    sLeymN
    sLeymN's avatar
    Kayıt Tarihi: 31/Mart/2008
    Erkek

    int [] dizi; 

    dizi = new int [size];

    bu şekilde yapabilirsin herhalde. Önce tanımlayıp sonra initialize edebilirsin diye düşünüyorum. 

    edit ayrıca neden öyle bir fonksiyon tanımı yapıyorsun ki ? 

    int array[][size] ı parametre olarak gönderme işlemini hiç bir programlama dilinde yapamazsın. 

     

Toplam Hit: 1063 Toplam Mesaj: 11