C program Pointer hatam nerede?

eneseker076

Femtopat
Katılım
19 Ağustos 2023
Mesajlar
34
Daha fazla  
Cinsiyet
Erkek
#include <stdio.h>

void bubblesort(int* sirala[],int boyut){
int i=0,j=1;
int gecici;
for(i=0;i<boyut;i++){
for(j=1;j<=boyut-i;j++){
if(sirala[j-1]>sirala[j]){
gecici=*(sirala[j-1]);
(sirala[j-1])=(sirala[j]);
*(sirala[j])=gecici;
}
}

}
for(i=0;i<boyut;i++){
printf("%d ",*(sirala));
}

}

int main()
{
int i;
int sirala[50];
int adet;
printf("Kac adet sayi gireceksiniz:");
scanf("%d",&adet);
for(i=1;i<=adet;i++){
printf("%d tane sayi giriniz:",adet);
scanf("%d",&sirala);
}
int* p=&sirala[50];

printf("\n\nKucukden buyuge siralanmis hali:");
bubblesort(p,adet);
return 0;

}

Program çalişiyor ama sayilari girdikten sonra deger siralamasi yapmıyor.
 
Son düzenleyen: Moderatör:
İlk hatan kodu böyle paylaşmak.

İkinci hatan array yerine array vektörü almışsın fonksiyon içinde.

int arr[] bu bi array. int * arr[]; ise 2d bir array. Yani birden fazla int array veriyorsun. Verdiğin pointer ise sirala'nın 51. elementinin (öyle bir element yok normalde segmentasyon hatası alman lazım) adresinin değeri. Yani sen integer array pointerına tek bir integerin pointerını veriyorsun.
 
İlk hatan kodu böyle paylaşmak.

İkinci hatan array yerine array vektörü almışsın fonksiyon içinde.

int arr[] bu bir array. int * arr[]; ise 2D bir array. Yani birden fazla int array veriyorsun. Verdiğin pointer ise Sirala'nın 51. elementinin (öyle bir element yok normalde segmentasyon hatası alman lazım) adresinin değeri. Yani sen integer array pointerına tek bir integerin pointerını veriyorsun.

Hocam bu bilgileri nereden ögrendiniz bir kaynak paylaşabilir misiniz daha yeniyim ben.
 

Yeni konular

Geri
Yukarı