Merhaba, tekrar hoş geldiniz.
Sizin için başka bir meydan okumamız var.
Bu meydan okuma yine yapılarla ilgili olacak.
Bu sana tanıdık gelecek. bir işaretçi içeren bir yapıdaki
öğelerle.
Bu yüzden, bir miktar o öğe için bellek.
Bu aynı zamanda sizi bir yapıyı işaretçi olarak
bildirmek ve ayrıca bir yapıyı bir fonksiyona işaretçi olarak.
Yani esas olarak yapılar ve bu meydan okumada işaretçiler.
Yani bir c programı yazmanız gerekiyor bir yapı işaretçisi oluşturur
ve bunu bir işleve aktarır.
item adında bir yapı oluşturun Aşağıdaki üyelerle birlikte.
Olması gereken bir öğe adı bir karakter işaretçisi olabilir.
Bir int olması gereken bir miktar.
Bir fiyat değişken olmalı ve miktar bir kayan değer olmalıdır.
Depolanan miktar yapısı esasen miktar çarpı
fiyat olacaktır çünkü toplam miktar bu olacaktır.
Sizden iki fonksiyon oluşturmanızı istiyorum.
Sizden bir fonksiyon oluşturmanızı istiyorum olarak öğe türünde
bir yapı işaretçisi alan öğe oku adlı bir parametre bir işaretçi olmalıdır.
Fonksiyonların avantajlarını biliyoruz Normal bir yapının aksine işaretçileri argüman
olarak almak, esas olarak geriye dönük uyumlu olmaları.
C derleyicisinin önceki sürümleri yapılarla çalışmadı.
Ayrıca çok daha hızlı ve bir fonksiyona bir işaretçi aktardığınızda
daha verimli olur çünkü tüm öğeleri kopyalamak zorunda değilsiniz,
sadece adresi kopyalıyorsunuz.
Yani fonksiyonlarımız olacak parametre olarak yapılara
işaretçi alır.
Bu okuma öğesini ele alacağız.
Bu fonksiyon ne yapmalıdır kullanıcıdan bir ürün
adı, fiyat ve diğer bilgileri okumalıdır. ve bir miktar veya bir öğe adı.
İçerideki içerik şu şekilde olmalıdır yapıda geçmişte saklanmıştır.
Yani sen bir orada saklamak istediğiniz bir yapıya işaret
eder.
Senden başka bir print item adlı işlev.
Bu ayrıca bir parametre olarak öğe türünde yapı işaretçisi.
Bu fonksiyon şunları yazdıracaktır parametrenin içeriğini belirler.
Yani sen sadece bazı printfs yapmak için.
Bu oldukça basit olacak.
Ana işlevde şunları istersiniz bir öğeyi temelde işaretçi
yapısının bir öğesi olarak bildirmek için veya bir öğe ve yapının bir işaretçisini bildirirsiniz
çünkü o zaman öğenin noktasına, öğenin
adresini atayabilir.
Ve ayrıca, bir de öğe adı işaretçisi için bellek.
Unutmayın, öğe adı yapısının içindeki eleman karakter işaretlidir,
yani bunun için bellek ayırmanız gerekir.
Eğer bir karakter olsaydı Dizi, buna gerek yok.
Ama unutmayın, bir elementiniz olduğunda bir karakter işaretçisi olarak,
tüm yaptığı gerçek için bellek oluşturmaktır. adresi, bu işaretçinin değeri.
Hafıza yaratmaz işaret ettiği şey için.
Yani eğer bir sabit atarsanız hafızanın herhangi bir yerinde olabilir.
Bu yüzden, bir yapı içindeki
o öğe adı öğesi için bellek.
Öğe işaretçisi şu şekilde olmalıdır hem okuma hem de yazdırma
öğesi işlevlerine aktarılır.
Peki bu meydan okuma neye yardımcı olacak işaretçileri anlamak, onları bir üye
olarak nasıl kullanacağınızı anlamaktır. bir yapı ve sonra da onları
nasıl dolaştıracağınızı ve biraz pratik biraz malloc da yaparak.
Ve sonra unutma, ne zaman bir malloc yaparsanız, bir free
yapmanız gerekir, bu yüzden bunu programınıza ekleyin.
İyi şanslar.
Bir çözüm sunacağım bir sonraki derste.
Boyutu malloc etmek için şunları yapabilirsiniz sadece 30 karakter gibi rastgele bir
boyut seçin veya bunun gibi bir şey.
Okumak zorunda değilsin.
Herhangi bir sorunuz olursa bana haber verin. Teşekkür ederim.