yeni=(Agac *)malloc(sizeof(Agac));
Agac struct yapsında tanımlanmış bi değer(int float gibi bişey oldu yani)
Burda Neden (Agac *) şeklinde kullanılıyor bunla ne ifade edilmeye çalışılıo pointer olduğumu?
en kısa zamanda cvplarnızı bekliorum lütfeeennn..
c-sorun
struct data{
int number
};
typedef struct data agac;
typedef agac *yeni;
boyle birşey olmalı
bu (agac*)'a cast denir her program için kullanılmaz;ancak bazı programlar hata verir."Return from malloc" malloc'dan dönen ne olduğunu agac cinsinden bir pointera atanacagını gostermek için kullanılır yeni agac yani struct data cinsinden bir pointerdır.(agac struct data yerine tanımlanmıstır).
Bu konu üstünde biraz düşündüm.Normalde (Agac*)yazmaya gerek yok ama bazı derleyiciler DevC gibi malloc(sizeof(agac)) ı kabul etmiyor hata veriyor. Bu yüzden hocamız bize yeni=(Agac *)malloc(sizeof(Agac)); şeklinde yazmamız gerektiğini söylemişti ve pek sorgulamamıştık nedenini. (Agac*) ayırdığımız adresin tipini gösteriyor olabilir. Mesela benim hafızadada açacağım alan belliyse
yeni=(int *)malloc(sizeof(4));
Bu şekilde tanımlanıyordu. Tamsayı bir değer için hafızadan yer ayırmış olduk. Eğer Agac adlı bir struct ımız varsa Agacın içindeki değişkenlerin boyutu kadar hafızadan yer ayrılıyordu. inş sorunu cevaplamışımdır biraz karıştı :) ,Yanlışım varsa düzeltiniz.