folder Tahribat.com Forumları
linefolder C - C++
linefolder C Fonksiyondan Array Dönememe



C Fonksiyondan Array Dönememe

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

    İçinde 128 tane 0 olan bir array oluşturmak istiyorum bir fonksiyon yazdım ama array'i return etmiyor.

    char createEmpty()
    {   
        char result[129];
        int i;
        for(i=0; i<128; i++)
        {
            result[i]='0';
        }
        result[128] = '\0';
    
        return result;     
    }
    
    
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    SinusX
    SinusX's avatar
    Kayıt Tarihi: 14/Aralık/2010
    Erkek

    void createEmpty(char dizi[])

    {  

        int i;

        for(i=0; i<128; i++)

        {

            dizi[i]='0';

        }

        dizi[128] = '\0';

    }

    int main()
    {
    char dizim[129];
    createEmpty(dizim);
    }

    Si vis pacem para bellum.
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Ekerci
    Ekerci's avatar
    Kayıt Tarihi: 14/Ocak/2010
    Erkek

    hocam array dediğin ne ? :S


    Konu ID: 112846 Konuyu Acan : Ekerci Konu Başlığı : Tahribatın en sevdiği adam ? Silinme Sebebi : 3 sayfadır takip ediyorum beni seven kimse çıkmadı. alacağınız olsun müridler
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    uLtRaLoVeR
    uLtRaLoVeR's avatar
    Kayıt Tarihi: 25/Haziran/2007
    Erkek

    Hiç böyle düşünmemiştim :D sağol
    Fakat yine de bu kadar sınırlı mıyız array dahi dönemiyor muyuz C'de. Python kullandık geçen dönem o çok şahaneydi.

  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    seretide
    seretide's avatar
    Kayıt Tarihi: 14/Haziran/2010
    Erkek

    onu ancak pointerlarla yaparsın galiba


    Saçma
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    uLtRaLoVeR
    uLtRaLoVeR's avatar
    Kayıt Tarihi: 25/Haziran/2007
    Erkek

    seretide bunu yazdı:
    -----------------------------

    onu ancak pointerlarla yaparsın galiba


    -----------------------------

    ben de öyle tahmin ediyorum yetkili bi abi yok mu :D

  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Tugberk
    Tugberk's avatar
    Kayıt Tarihi: 04/Ekim/2009
    Erkek

    1) O yazdığın fonksiyon tasarımı kusurlu bir kere, nesne fonksiyon içinde üretilip döndürülmez, yapı ya da dizi'leri manipüle eden fonksiyonlara nesnenin adresi parametre olarak geçilir.

    2) char result[128] = {0} diyerek ya da memset ile o dediğin işlem kolayca yapılır.

    3) ille de döndürmek istiyorsan nesneyi static olarak bildirirsin. static char result[128]; 

    Sorun neden kaynaklanıyor dersen, yerel olarak üretilen nesne, o blok sonlandığında yokolur. Fonksiyon ya da başka bir blok farketmez. If içinde tanımlarsan if dışında erişemezsin, fonksiyon içinde tanımlarsan fonksiyon sonlandığında erişemezsin vs.

  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    nitem
    nitem's avatar
    Kayıt Tarihi: 20/Temmuz/2011
    Erkek

     

    en basitinden şunu yazman yeterli.

    #include <stdio.h>

     

    int main(){

        int k;

        int a[128]={0};

        for(k=0; k<128; k++)

                 printf("%3d . indisin baslangic degeri = %d\n",k ,a[k]);

                getchar();  

        return 0;

        

    }

     

    @Tugberk pardon hocam ben yazarken benden önce cevaplamışsınız görmedim.

     

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

    Tugberk bunu yazdı:
    -----------------------------

    1) O yazdığın fonksiyon tasarımı kusurlu bir kere, nesne fonksiyon içinde üretilip döndürülmez, yapı ya da dizi'leri manipüle eden fonksiyonlara nesnenin adresi parametre olarak geçilir.

    2) char result[128] = {0} diyerek ya da memset ile o dediğin işlem kolayca yapılır.

    3) ille de döndürmek istiyorsan nesneyi static olarak bildirirsin. static char result[128]; 

    Sorun neden kaynaklanıyor dersen, yerel olarak üretilen nesne, o blok sonlandığında yokolur. Fonksiyon ya da başka bir blok farketmez. If içinde tanımlarsan if dışında erişemezsin, fonksiyon içinde tanımlarsan fonksiyon sonlandığında erişemezsin vs.


    -----------------------------

     

    char result[128] = {'0'};

    tek bir tane 0 koyuyor içine. yalnız %s ile bastırıyorm çünkü öyle yapmam gerekli.

  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Tugberk
    Tugberk's avatar
    Kayıt Tarihi: 04/Ekim/2009
    Erkek

    uLtRaLoVeR bunu yazdı:
    -----------------------------

    Tugberk bunu yazdı:
    -----------------------------

    1) O yazdığın fonksiyon tasarımı kusurlu bir kere, nesne fonksiyon içinde üretilip döndürülmez, yapı ya da dizi'leri manipüle eden fonksiyonlara nesnenin adresi parametre olarak geçilir.

    2) char result[128] = {0} diyerek ya da memset ile o dediğin işlem kolayca yapılır.

    3) ille de döndürmek istiyorsan nesneyi static olarak bildirirsin. static char result[128]; 

    Sorun neden kaynaklanıyor dersen, yerel olarak üretilen nesne, o blok sonlandığında yokolur. Fonksiyon ya da başka bir blok farketmez. If içinde tanımlarsan if dışında erişemezsin, fonksiyon içinde tanımlarsan fonksiyon sonlandığında erişemezsin vs.


    -----------------------------

     

    char result[128] = {'0'};

    tek bir tane 0 koyuyor içine. yalnız %s ile bastırıyorm çünkü öyle yapmam gerekli.


    -----------------------------

    ne ben ne de nitem öyle bir kod yazmadı ordaki tırnaklar senin eklemen. 

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

    evet çünkü bana öyle lazım yani string olması lazım

Toplam Hit: 2726 Toplam Mesaj: 16