Öncelikle merhaba. Ufak bir proje ödevim var fakat pointer hatalarıyla başım dertte. Program dili C. Proje olduğundan kodun sağlam kısmını error vermeyecek şekilde çıakrtmam gerekti. Kodda mantık aramayın oyüzden .
1) Yarattığım myHead struct'ını MyFuction fonksiyonuna nasıl yollayacağım ve nasıl kullanacağım? Zira MyFunction içinde ne zaman myHead kullansam deferencing pointer to incomplete type hatası aldım.
2)myHead structını MyFunction fonksiyonundan bir diğer fonksiyona nasıl yollayacağım/kullanacağım? (Örneğin start fonksiyonu. Henüz ilk sorun yüzünden deneyemedim bile.)
#include <stdio.h> #include <stdlib.h>
typedef struct Node{ int t; int ts; struct node *next; }node;
Neresini düzeltsek bilemedim. Kısaca şöyle söyleyeyim.
Bir struct elemanına nesnenin kendisi üzerinden erişiyorsan bunu . operatörü ile yaparsın. Yani;
head myHead; myHead.c = 10;
Yok eğer işaretçi üzerinden erişiyorsan -> ile.
head *myHead = (head*) malloc(sizeof(head)); myHead->c = 10;
veya head myHead; head *myHeadPtr = &myHead; myHeadPtr->c = 42;
MyFunction içindeki myHead işaretçi olduğu için şöyle erişirsin; myHead->first = newNode;
* ile dereference edince nesnenin kendisi elde edildiği için şöyle de olabilir ama bu gereksiz.
(*myHead).tail = newNode;
MyFunction çağrısı işaretçi gönderdiğin için şöyle olmalı. MyFunction(myHead); // & yok
myHead işaretçi değilde struct un kendisi olsaydı senin yaptığın gibi olurdu.
Öncelikle çok teşekkürler.
myHead'in sonundaki node'a tail işaretçisi ile ulaşıp, o nodun next'ini newNode yapmak istiyorum. myHead->tail->next = newNode; yapınca yine aynı hatayı veriyor. Bu değişikliği hangi notasyonla yapabilirim?
Ayrıca söylediğiniz düzeltmeleri yapınca errorlerin yerini assigment from incompatible pointer type warning'i aldı newNode içeren her satır. Örneğin;
myHead->tail = newNode;
İlk söylediğim errorleri düzeltemediğimden warningleri test edemiyorum
-------------------------------------
Structları tanımlarken struct node *next; yazmışım. Onlar struct Node *next olacak
Gözden kaçan bu ufak ama sinir bozucu hatayı da düzeltince kod tıkıt tıkır çalışıyor.
< Bu mesaj bu kişi tarafından değiştirildi sparkan -- 25 Aralık 2012; 21:06:49 >
1) Yarattığım myHead struct'ını MyFuction fonksiyonuna nasıl yollayacağım ve nasıl kullanacağım? Zira MyFunction içinde ne zaman myHead kullansam deferencing pointer to incomplete type hatası aldım.
2)myHead structını MyFunction fonksiyonundan bir diğer fonksiyona nasıl yollayacağım/kullanacağım? (Örneğin start fonksiyonu. Henüz ilk sorun yüzünden deneyemedim bile.)
DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.
Üye Ol Şimdi DeğilÜye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.
< Bu mesaj bu kişi tarafından değiştirildi sparkan -- 25 Aralık 2012; 21:03:34 >