İçeriğe geç
ShiftDelete.Net
Haber ara/ SDN'ye SorGiriş
Haber Akışı SDNTV İnceleme Forum Yapay Zeka Akıllı Telefon Elektrikli Otomobil Oyun ShiftDelete.Net Global Teknoloji Haberleri Mobil Otomobil Donanım Savunma Bilim Sosyal Medya İnternet Giyilebilir Teknoloji Rehber Ürünler Son dakika Yazarlar
  1. Ana sayfa
  2. Topluluk
  3. Programlama
  4. Programlama Dilleri
Programlama Dilleri

Pointerlarla ilgili 2 soru

SemihKoca26.07.20151 cevap2.766 görüntüleme
2015'den beri3 mesaj
#1
1)Bu kodda ekrana 10 basıyor ama 11 basmasını istiyorum.Hatamı bulamıyorum.
#include<stdio.h>
void fonk(int *);


main(){
    int *x,a=10;
    x=&a;
    fonk(&x);
    printf("%d",*x);
    
}
void fonk(int *b){
    *b++;
}


2)En son satırdaki koyu ifadeyi açıklayabilir misiniz ?
int **matris;
.
.
.
matris = (int **)malloc( satir_sayisi * sizeof(int) );
Cevaplar
2014'den beri8 mesaj
#2
1. soru:

#include<stdio.h>
void fonk(int *);




main(){
    int *x,a=10;
    x=&a;
    fonk(x);
    printf("%d",*x);
    
}
void fonk(int *b){
    (*b)++;
}

fonksiyon içinde *b yi parantez içine alınca(işlem önceliğinden dolayı) 11 gösteriyor. parantez yokken yani *b++ da pointerdaki adresi 1 artırıyor(önce ++) ve o adresteki değere işaret ediyor.
(*b)++ da ise pointerın tutuğu adresteki değere gidiyor ve onu 1 artırıyor.
ayrıca fonksiyona x in kendisi verilmesi gerekiyor adresi değil çünkü fonksiyon pointer bekliyor. fonksiyonun tanımı void fonk(int **b) şeklinde olsaydı fonksiyona x in adresi verilebilirdi(&x).
2. soru:
malloc void pointer (void *) döndürüyormuş. void pointer ı ilgili pointerin yapısına çevirmek için cast ediliyor.(int **)
tam bilgim yok ancak aşağıda verdiğim adreste biraz açıklama var:
c - Why do we cast return value of malloc? - Stack Overflow

Cevabını yaz

Cevap yazmak için giriş yap ya da üye ol. Eski forum kullanıcı adın ve parolanla girebilirsin.