08.11.2014 Views

c_kitap

c_kitap

c_kitap

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

C ve Sistem Programcıları Derneği - C Ders Notları - Necati Ergin<br />

#include <br />

#include <br />

#include <br />

#define SIZE 100<br />

void swap(int *p1, int *p2);<br />

void display_array (const int *p, int size);<br />

void set_random_array(int *ptr, int size, int max_val);<br />

int *getmax(const int *ptr, int size);<br />

void select_sort(int *ptr, int size)<br />

{<br />

int k;<br />

}<br />

for (k = 0; k < size - 1; ++k)<br />

swap (getmax(ptr + k, size - k), ptr + k);<br />

int main()<br />

{<br />

int a[SIZE];<br />

srand(time(0));<br />

set_random_array(a, SIZE, 1000);<br />

printf("siralanmadan once\n");<br />

display_array(a, SIZE);<br />

select_sort(a, SIZE);<br />

printf("siralanmadan sonra\n");<br />

display_array(a, SIZE);<br />

}<br />

return 0;<br />

Yerel Nesnelerin Adresleriyle Geri Dönmek<br />

Adrese geri dönen bir işlev asla otomatik ömürlü yerel bir nesnenin adresiyle geri<br />

dönmemelidir. Otomatik ömürlü yerel nesnelerin adresleriyle geri dönmek tipik bir<br />

programlama hatasıdır.<br />

Klavyeden girilen bir ismin başlangıç adresine geri dönen bir işlev yazılmak istensin:<br />

char *getname()<br />

{<br />

char name_entry[40];<br />

}<br />

printf("bir isim girin: ");<br />

gets(name_entry);<br />

return name_entry; /* Yanlış! */<br />

#include <br />

int main()<br />

{<br />

char *ptr = get_name();<br />

printf("alınan isim = %s\n", ptr);<br />

}<br />

return 0;<br />

257

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!