ANDI PENG: Pekala. Bölümün haftasında dört hoşgeldiniz. Güzel bir gün Burada New Haven dışarı böylece gerçekten seyrek düşünüyorum Çocuklar saçılması o Bugün bölümü için beni katıldı, teşekkür ederim. Yani hızlı, sadece biz önce bugün gündemi başlar. Biz üzerine gidecek Birkaç kısa duyurular. Biz gerçekten tuhaf bir program var Önümüzdeki iki hafta içinde geliyor ya da öylesine biz üzerine gidiyoruz. İkincisi, ben biliyorum herkesin en sevdiği topic-- Ben bu fikrinizi erimiş eminim derste, merak etmeyin, Hala biraz onu alamadım. Bu iyi. Şakaydı. Ben aslında bunu alırım. Ama emin olacaktır Siz de olsun. Yani bir geçireceksin Gerçekten, gerçekten iyi bir miktar zaman bugün işaretçisi bahsediyoruz. Gördüğünüz gibi, Şeker adlı konuşma, bugün çok büyük. Biz gerçekten tutmak için gidiyoruz evet ki-, bu doğru. Şeker alarak devam edin. Şu anda onları etrafında geçmek gidiyorum. Endişe etme. Biz gerçekten denemek için gidiyoruz İnsanların kan şekerini tutmak için beyin yakmak için gidiyor çünkü kadar Bazı oksijen bugün göstericiler nedeniyle gerçekten zor, gerçekten. Sonra hakkında konuşmak için gidiyoruz tür bir bellek yönetimi Aynı alanda. Ve biz taşımak için gidiyoruz yönlendirme ve dosyaya üzerine Sadece sözdizimi I / O, güzel Konuşmamız gereken şeyler. Ve sonra son olarak, ben bir kez daha deneyeceğim pset4 10, 15 dakika gibi bırakmak. Yani, biz konum bu yüzden bir kaç gün içinde bağlı olduğunu gidiş gerçekten tür vermek sen bazı yararlı ipuçları eğer Zaten bu konuda başladık. Güzel. TAMAM. Bu yüzden bazı duyurular Bu yaklaşan hafta için. Puanlama. Ben aslında hiç bilmiyorum Senin kaç bu noktada çocuklar içinde aslında benim Orada Tamam section--? TAMAM. Ama, o sizin için Benim bölümünde kimsin, sadece bir kaç sınıflandırma yorumluyor. Yorumlama İlk, gerçekten iyi bir iş. O sizin size, kim yorum yok muhtemelen çünkü sen kim olduğunu biliyorum Bu hafta dinged bazı stil puan aldı. Sadece emin olun tüm senin programlar birkaç yorum ekleyin. Gerçekten, stil gerçekten kolay Bir kapsam olarak doğru puan almak. Bizim için Yani, sadece yapmak Eğer naziksiniz emin tüm kısa bir açıklama ekleyerek Eğer ne yaptığınızı hakkında programlar. Secondly-- bunun için büyük bir sorundur Geçtiğimiz hafta-- TA bir sürü böylece emin yüklediğiniz yapmak Doğru ile doğru klasöre adlı programlar. Ve biz bunun için sormak nedenidir çünkü biz, derecelendirilmesi sırasında, aslında bir komut dosyası çalıştırmak senin otomatik olarak indirir kod senin psets hepsi çalışır hepsi üzerinde doğruluğu testleri, ve sonra puanları yüklenenler doğrudan not defterindeki içine. Ancak, herhangi bir noktada, eğer yanlış programı seçildi, entire kadar bu vidalar Herkes için bir program. Ve böylece, meşru, Bu güzel senaryo biz yapar yazdım o Bizim için tüm bu tamamen Eğer yoksa çöküyor Programınız düzgün adlandırılmış. Yani sadece doğru yükleyin Klasör, onlara doğru adında var ve daha sonra hayat iyi. Ben geri psets olsun Sizin çocuklar daha erken Ben hızlı sınıfa onlara olsun çünkü. Evet. TAMAM. Ve ayrıca biz konuşacağız about-- Yale gerçekten, gerçekten bir var Bu önümüzdeki iki hafta içinde tuhaf zamanlama. Sizlerle bu öylesine Harvard bu geçerli değildir. Ama Yale'de bizim için güzel çocuklar biz sonbahar denilen şey, üzgünüm break-- Harvard-- biz nereye Okul kapalı beş gün. Ve bu güzel iken, o tür bizim pset ritmini messes psets Perşembe, Cuma nedeniyle çünkü. Ve eğer öyleyse biz burada değiliz Perşembe, Cuma, biz Sizin için çalışmalarını olamaz Perşembe, Cuma günleri nedeniyle. Peki biz konum o-- yapacağız Bu ne oluyor ise% 99 emin gibi olabilir Bazı değiştirmek ama düşünüyorum subtle-- biz gidiyoruz olduğunu have-- bu hafta normaldir. Yani biz bizim bölümü var Salı ofis saatleri takip Haftanın geri kalanı boyunca ve sonra pset4 Cuma günü kaynaklanmaktadır. Sonra hepiniz bildiğiniz gibi, olduğu gibi Ben, geçen hafta sizleri hatırlattı Bizim sınav var 0 Çarşamba günü geliyor. Ve böylece, kendimi bir öğrenci olmanın, Seninle çok az biliyoruz adamlar aslında üzerinde çalışıyor olacak senin sınav iki gün önce pset5. Peki biz gidiyoruz Muhtemelen isimli yapıyor sonunda, Pazartesi gecesi, biz gidiyoruz gerçekte, 7:00 5:30 dan, kısa bir inceleme var konularda oturumu kapalı. Bir eğer Belirsiz oturumu veya bir Q & A gözden geçirin. Bu yorum bir çeşit olacak Biz ele alacağız hangi formu Sizin için uygun bazı konular. Ve sonra Pazartesi ve Salı geceleri 8:00 11:00 bu hafta, Biz ofis saatleri için gidiyoruz. Bu ofis saatleri olacak en büyük olasılıkla, sadece gelip daha fazla olması Tas ile ilgili soru sormak hakkında karıştı konum herhangi kavramlar, ve onlar tür sizinle üzerine gidersiniz sınav ve yorum kavramları. Quiz 0, sen iseniz Pazartesi, Çarşamba bölüm, sırasında Çarşamba günü olacak sınıf sırasında Çarşamba günü class--. Ve konum o takdirde Salı, Perşembe bölümü, Perşembe günü sınıf sırasında da olacak. Gerçekten seçemezsiniz hangisini gidin. Bir Pazartesi, Çarşamba iseniz, Çarşamba gitmek zorunda. Salı, Perşembe iseniz Perşembe gitmek zorunda. Ama sonra o gece, Bize güzel personel, olacak partiyi derecelendirilmesi dev bir sınav var hangi size geri puanları alırsınız o gece. Ne zaman? Belirsiz, kim bilir, ama olacak 24 saat içinde size geri olması böylece umarım siz Cuma gününe kadar bazı geribildirim var. Ve sonra biz gerçekten tuhaf hafta var. Böylece pset5 biridir Yılın en zor psets. Çok üzgünüm çocuklar. Ne denemek için gidiyoruz yapmak biz gidiyoruz olduğunu bazı gerçek destek bu hafta sonu. Çünkü siz, gördüğünüz gibi pset sonbahar tatili öncesinde kaynaklanmaktadır. Biz destek yok sonbahar tatilinde çocuklar ve bu yüzden gerçekten tür ifade etmek istiyorum, bu kadar, Hadi birlikte halledeyim en gerçekten zor iş let Bu önümüzdeki iki hafta, bu sınav olsun ile yapılan bu iki psets eklemek ve sonra siz güzel bir rahatlatıcı var CS düşünmeden yedi gün. Bunun için sırayla Yani , ne biz muhtemelen Benim bölümünü hareket edecek Pazar öğleden sonra ile. O kadar çekilecek hayır endişeler Gelip edemez. Ancak çevrimiçi filme olacak Orada ve erişilebilir böylece siz Pazar olması, Pazartesi, Salı, pset5 üzerinde çalışmak için. Ve o zaman sonbahar var Sonra kırmak ve hiçbir CS ve Biz geri gelip eziyet onun sırt. Ama olacak Sonbahar tatili için güzel bir hafta ve biz gerçekten stres olarak bunu yapmak istiyorum mümkün olduğunca herkes için ücretsiz olan Biz taşındık neden pset nedeniyle olmaktır sonra sonbahar sonu ziyade önce. Demek bu--, ben tür hissediyorum çünkü o sahip amacı yendi gibi varsa sonbahar aradan sonra son sonbahar tatilinde neyse herhangi bir destek. Bu yüzden sanırım rather-- var biz oldukça şimdi odaklanmak istiyorum. Herkes soruları var mı Bu program hakkında? Bir şey kafa karıştırıcı? Evet. HEDEF KİTLE: biz hala var mı 21 bir konferans? ANDI PENG: Evet. 21 Yani, orada olacak Harvard canlı bir ders. David filme olup olmadığını bilmiyorum o ya da, o aslında ders eğer ama mevcut olacak Erişmeye çocuklar için çevrimiçi. Yani sadece bir bölmek emin olun sonbahar tatili yerde saat dışarı böylece siz yakalayabilirsiniz Bu ders üzerinde. Evet? HEDEF KİTLE: Evet. Özür dilerim. Burada bir couple-- var ANDI PENG: Endişeye gerek yok. Burada, bazı şeker almak. HEDEF KİTLE: Hey, ben yakaladım. Dolayısıyla, sadece yarın değil, tekrarlamak ama Bundan sonra Çarşamba, biz bir sınav var. ANDI PENG: Doğru. HEDEF KİTLE: Ve şey olmak gidiyor sınav formatı nedir? ANDI PENG: Oh. Yani biz bir e-posta göndermek edeceğiz derinlemesine tüm bu daha kapsar. Ama, temelde, sadece kapakları Temel konular zaten örtülü dönemin ilk yarısında. Biz yorum oturumları ve soru olacak ve bu konuda hiçbir endişe cevapları. Ama biz çok üzerinde gidiyorum. HEDEF KİTLE: Bu olacak mı, biz Bizim bilgisayar ve kod getirmek orada-- ANDI PENG: Hayır Bu yazma çocuklar olacak ve elle soruları yanıtlayan. HEDEF KİTLE: Oh. ANDI PENG: Yani biz vereceğiz dışarı uygulamalar ve malzeme bu yüzden siz belki gitmek isteyebilirsiniz sırt ve elle Mario yeniden sadece Emin siz sahip olmak için Bunun nasıl bir fikir. Bazen ne zaman Çünkü Eğer elle size göre yazmak noktalı virgül ve şeyleri unutmak ve bu gerçekten kötü. HEDEF KİTLE: Bu [inaudible] olmayacak mı? Mesela, alıyoruz Senin- bir noktalı virgül ANDI PENG: Evet ve hayır. Biz derinlemesine daha fazla konuşacağız sınav düzeni nasıl dair ve nasıl sınıfa gidiyoruz. Ama esasen, sadece biliyorum genel format sizi olacak adamlar code-- yorumlama ya Temel sorulara cevap. Seni sorsaydım, kütüphane nedir? Siz bilmeli ne Kütüphane yapar ve bu yazınız. Ya ben bir program yazmak, söylemek olabilir Hello World ekranına yazdırır. Ana Siz yazarsınız, int hükümsüz printf merhaba dünya noktalı virgül. Evet. HEDEF KİTLE: Yani gitmiyor herhangi bir yerde olmak [duyulamaz] Sorunun zorluk seviyesi ayarlayın? ANDI PENG: Hayır Hayır. Biz evet o-. Bütününü Yazın 15 20 dakika oyun, gidin. Hayır, öyle olmayacak. Hayır. HEDEF KİTLE: Tamam. Yani çarşamba. Bu hafta da biz sırasında En zor problem belirledik? ANDI PENG: Hayır Yani sorun nedeniyle set sonbahar tatili bir gün önce. Schedule-- e-posta aslında dışarı göndermek oldu 20 dakika önce tüm bu ilgili. Yani siz sadece e-postalarınızı kontrol. Orada olacak. Evet. Endişe etme. Güzel. Ilgili her türlü genel sorular duyurular, derecelendirme, sınavlar, biz doğru dalmak önce tüketecek göstericiler Bizim bölüm zaman çoğunluğu bugün? Güzel. Pekala. Yani yaptığımız hepiniz bu lovely-- izle Ben diyorlar bilmiyorum. Şey burada claymation kendini havaya uçurdu çünkü o Doğru bir gösterici kullanmak vermedi. Peki, programınızı gidiyor eğer muhtemelen kendini havaya uçurmak doğru yanı işaretçileri kullanmak yok. Yani biz yapmak için gidiyoruz emin olmaz. Biz gidiyoruz Bugün Bazı gösterici eğlenceli yapmak. Ben şeye gidiyorum olarak sorunsuz olarak düşünüyorum Küçük bir süre içinde yapılabilir. Ama karşılamak için sadece çok şey var Gerçekten siz istediğiniz, Bir şey anlamak yoksa, sadece beni devam edelim. Bunu yapmazsanız Çünkü şey anlamak, muhtemelen gitmiyorsun Ondan sonra söylemek bir şey anlıyorum. Yani beni durdurmak ve bir soru sormak lütfen. Bunun her türlü Çünkü araya snowballs. Gibi, göstericiler içine kurşun Diğer şeylerin içine bellek kurşun. Ve böylece işaretçiler anlamıyorum eğer, Beni durdurmak ve biz bunu anlamaya edeceğiz ve hayat iyi olacak. Güzel. Peki dersinde Sizinle birçok, David işaretçileri bahsedilen zaman, senin beynini tür jöle dönüştü? Evet. İyi. Biz denemek için gidiyoruz de-jöle beynini bugün. Biz gerçekten sistematik gidiyoruz Tam bir işaretçi nedir geçmesi, öyle ve biz bunları nasıl kullandığımız. Yani hepsi çok pointers-- Normalde değişkenlerle bizim gibi, kodlama kullanıyorum Bu tür tamsayı veya dizeleri gibi değişkenler veya yüzer, hepsi temelde konum kendilerine atanan bir değer yanı sıra bir adres bu değere işaret. Yani şimdi bu hakkı çizmek için gidiyorum. Biz hemen hemen hiç tebeşir var ama bu sorun değil. Yani, örneğin, normalde biz ettik yolu değişkenleri kullanıyorum biz oluşturmak olduğunu int türünde değişken adı, diyelim sadece söyle. Yani burada biz int x var ve biz konum 50 O int başlatılıyor. Yani burada belleğin bu blokta bizim Bilgisayarlar, biz 50 sayı kaydetmiş. Işaretçileri devreye girer böyledir Bu bilgisayar, burada, gibi itself-- fiziksel sabit disk Benim computer-- RAM içinde sadece bellek sınırlı miktarda vardır. Sadece bir şeyler saklamak devam edemez şeyin üstünde şeyler üzerine ve hepsini yok. Yani şekilde biz dinamik tahsis olduğunu Bellek ne istediğimizi saklamak mümkün ve erişim bu işaretçileri olan gereğidir. Yani doğru, bellek alanında düşünün. Bu RAM ise senin Bilgisayar, bu küçük bit var bloklar veya hafıza bayt veya bunlar sadece küçük olduğu hususların üzerinde tahsis edilmiş bloklar Bilgisayarınızın sabit disk ya da RAM, ve bu blokların her biri içinde Eğer farklı şeyler saklayabilirsiniz. Yani, örneğin, bir tane Bu örnekte, bir dizi burada tek byte Sekiz bitten oluşan. Numara bağlı olarak değişir Bilgisayarınızın işletim sistemi. Örneğin, kaç senin var 64-bit işletim karşı 32-bit duydum sistemler? Kesinlikle. Böylece tüm söyleyerek bu memory-- olmasıdır yol, bilgisayarınızın o Hafıza farklıdır yönetir. Gerçekten bu neden olan anlamak önemlidir Neden bellek kendisi işlevleri yerine daha numaralara dikkat edin. Yani biz gerçekten umurumda değil bu nasıl dizi büyük biz sadece umurumda gerekir ise ne kadar büyük biz olmak bir int ihtiyacım var, ne kadar büyük do bir dize ihtiyacımız olmak, bir işaretçi nasıl büyük? TAMAM. Bu yüzden bir çok olacak ağır, yoğun bilgi. Ben Sizi vereceğim Burada birkaç komik kabartma anlar. Siz bütün gerekir Şimdi bunu anlamak için. Biz biliyoruz çünkü göstericiler adresler, ve bu değişkenler farklıdır. TAMAM. Güzel. CS espriler evet, en iyisi mi? Yani biz gitmek yolu Bir işaretçi oluşturma hakkında sözdizimi çok özel bir tür olduğunu. Herhangi oluşturma gibi değişkenin türü, bu kadar Belirli olacak biz bunu oluşturmak için kullanabilirsiniz sözdizimi. Yani herhangi işaretçi bildirirken, Bir gösterici sadece essentially-- olduğunu Ben önemli bence İşaretçiler bir parçasıdır değişken oysa bu Bir değer ve bir adres, hem Bir gösterici bir adres. Onun değeri bir adres. Yani saklanan bir adres var Farklı bir adreste. Herhangi bir mantıklı olursa. Biz, daha ayrıntılı olarak üzerinde gidersiniz ama bu genel form Yazıcı nasıl depolandığını Neden-- evi. Yani bir işaretçi oluşturmak yolu Verilerin ne tür yaparak olduğunu işaretçi gidiyor referans ve olmaya zaten-- Daha sonra star-- ile işaretçi adı. Yani burada, eğer biz istedik bir işaretçi oluşturmak için bir tamsayı doğru çekti ve biz işaretçi adı x olmak istedim, Biz int yıldız x yapardı. Evet? HEDEF KİTLE: Ve eğer öyleyse Aşağıdaki satırı size int x yapmak, olacak int yıldız x x konumunu göstermektedir sonradan tanımlarken musun? ANDI PENG: Gerçekten iyi bir soru. Bu in üzerine gidersiniz Bir çift daha sonra kayar. Evet. Ve daha sonra da aynı şey karakter ve aynı şey yüzer. Sadece bu noktada biliyor Biz bir işaretçi yarattık, biz aslında set değil Henüz bir şey eşit. Biz aslında başvurulan değil. Aynı şey burada Eğer bir değişken oluşturmak, Eğer değişkenin adını yarattık, Aslında buna bir değeri yok. Burada aynı şey. TAMAM. Peki işaretçiler değerleri ayarlayabilirim? Bu referans ve kaldırma tarafından bu. Yani şekilde biz referans olabilir Bir özünde, bir gösterici varia-- biz bellek adresi iade bu değişken depolanır. Ben bir pointer-- olsaydı çekersiniz Yani Bu kez biz, sonraki slayta olsun ama sadece temelde, biliyorum, işareti ve- ve variable-- tüm Size adresi söyleyeyim olduğunu yapar nerede bir şey saklanır. Ve başvurusu kaldırma tersidir Sadece yıldız olan o, bir. Yıldız, sadece size gerçek verir bu adreste saklanan veriler. Yani kimse seni adresi verir Bir adreste saklanır, Diğer size gerçek verir adresinde saklanan değer. Yani ikisi vermek Eğer farklı şeyler. Bir kez daha, slaytlar tüm online yüzden hiçbir endişe Siz kopya edemez zaman içinde bu aşağı. Yani bir göz atalım Burada bu örneğe. Yani biz bir dev var Burada bellek dizisi, değil mi? Biz sadece bloklar var Nerede hafıza hafıza veya bayt, hangi biz farklı şeyler saklayabilirsiniz. Sadece bunlar diyelim Bellekte adres puan. Yani her zaman var - 0x bakın bütün bu olduğunu anlatıyor bir onaltılık basamak var. Hepiniz, sayılar bildiği gibi Farklı üslerinde dayalı olabilir. Base 10 nasıl tipik numaralarını yorumlamak. Ikili taban 2 de var. Ve bu durumda, onaltılık taban 16. Bu demenin farklı bir yolu 10-- sıfır ya da sıfırdan dokuza ve daha sonra, aynı zamanda, A, B, C, D, E, F Ayrıca farklı numaralar başvuruyor. Davut kısaca konuşmasında bu gitti. Siz ise şaşkın, sadece Google'da. Öğrenmek için gerçekten çok kolay yolu var onaltılık basamak nedir. Bütün bu gerçekten alakalı Şu anda sizin için adamlar a bilmek C onaltılık basamak siz-- anlatır tipik olarak Bir işaretçi olduğunu söyler. Ya da bir adres. Yani burada bu örnekte, int x 5 eşittir. Biz integer-- oluşturuyorsanız Çeşidi üzgünüm, değişken tamsayı ve 5'e başlatılıyor ediyoruz. Yani burada bizim hafıza kartındaki, biz gördüğünüz x 0x0 adreste ve var değeri bu 5'tir içinde saklanır. Bu mantıklı olmalıdır Herkese, değil mi? TAMAM. Ve sonra biz ne yaptık kod ikinci satırında biz yarattık ki int türünde bir gösterici. İşte ne int Yıldız işaretçi yapıyor. Ve bu eşit olduğunu işareti x Sana bir şey adresini vererek olduğunu. X adresinde Yani Bu örnekte, 0x0 olup. Ve böylece adres ediliyor Bu işaretçi saklanır. Bu herkese mantıklı mı? Yani bu-- düşünüyorum Burada pointers-- düşünüyorum Yale bir posta kutusu sistemine sahip Her öğrencinin bir posta sahip olduğu Eğer nereye adresi LW bodruma ve sadece gidip kapmak olabilir ne olursa olsun o adrese ihtiyacınız. Aynı şey oluyor Burada bir bilgisayar. Bu hafıza bayt var Eğer bilgi içine saklayabilirsiniz ancak sipariş bilmek hangi bilgi parçaları bulmak için çalışıyoruz ne kadar maç ve, bir işaretçi gereken yere bu oraya nasıl gideceğini söyler. Yani, örneğin, benim için, benim posta kutusu, Belirli bir beş basamaklı bir numara var. O benim adresim. Yani fiziksel olarak belleğe gidebilir, Ben adresinde bakabilirsiniz O PO kutusuna gidebilir ve içindeki verilere erişmek. Bu Herkese mantıklı mı Bilgisayarınız esasen aynı şeyi yapıyor. Bu nedenle tüm işaretçi yapıyor olmasıdır Sadece bir hafıza yaratıyor ve bellek veri aslında başka bir şey adresi. Sonra gidip o bulabilirsiniz. Herkes iyi? Şimdiye kadar bana iyi herkes? TAMAM. Güzel. Pekala. Daha önce olduğu gibi Yani hemen hemen aynı şey. Bu yüzden ilk olarak, bir değişken var adı X burada case-- Ben 5 bu değeri değiştirmek için gidiyorum. Sadece adres diyelim bellekte bu 0x0'dır. 00. Büyük. Öyleyse, bizim ikinci kod satırı, biz konum bir işaretçi oluşturmak için gidiyor ptr işaretçi denir. Ve bu adresi, haydi sadece hafızada 0x01 olduğunu söylüyorlar. Ve biz aslında istiyoruz işareti store-- x sana ne x adresini verir. Ve x adresi 0x00 oldu. Yani bu işaretçi şimdi aslında adresine sahip ne x onun değeri olarak depolanmaktadır. Bugüne kadar benimle herkes? Güzel. Ve sonra, yolu, biz kopya olur, Biz beyan ve başlatmak olsaydı olduğunu int türünde bellek başka blok. Sağ? Bu bir int olacaktır. Bu kopya olacağını söyledi. Ve bunu get-- gidiyoruz Yıldız işaretçi verir Bu adresten gerçek veri. Işareti size adresini verir, Yıldız sana verileri verir. Işaretçi öylesine veri. Bu işaretçi 5 işaret ediyor. Ve böylece bu fonksiyon yıldız burada-- pointer-- gider de ne olursa olsun alır Bu blok ve burada depolar. Herkes bu oldu nasıl anlaşılır? Yani iki operatör doğru orada-- işareti ve star-- sadece farklı şeyler yapmak işaretçileri kullanıldığında. Bir Size adresi alır, tek Size gerçek değerini alır. Yani siz ne zaman emin olun Eğer ikisini karıştırmayın kodlama onlar çok farklı çünkü. Burada bir 0x01 güzel bir örnek var. Bu gerçekten güzel az sayıda hatırlamak. Gerçek bilgisayarında Eğer zorunda gidiyoruz şey dev bir eşek numarası Bu hoş değil, hoş değil bu. Bazı çöp değeri olacak. Ve bu yüzden, gerçekten gidiyor gerçekten pisliği programlarınızı. Bu çok önemli Şu anda sahip olduğumuz gibi neden-- aşağı temelleri, fiziksel olarak ne zaman ne oluyor kod bu bloklar koşuyoruz. Evet herkes--? HEDEF KİTLE: int x int kopyası eşittir Yani? ANDI PENG: Hayır, çünkü bu durumda, int x-- x-- değeri sağ, 5 eşittir? Ve sonra int kopya 5 eşittir. Yani sanki onları eşit için birbirlerine onlar tamsayılar çünkü, Evet, onlar gerçek olarak değerlendirmek istiyorum. Ama bellekte dizeleri gibi, olsaydı Davut Örneğin sırasında yaptığı tek, farklı çünkü Onlar baþvurduðunuzu bellekte yer adresleri ve onlar yanlış denk olur. Sen çünkü doğru olacaktır burada çok doğrudan integers-- values-- karşılaştırarak ama diğerleri sen referans noktaları. Bir dize, bir dizi olduğu için ve Bay Kane bu later-- bahsedeceğiz ama dizi aslında sadece bir olduğunu bellekte karakter bir demet işaretçisi. Yani o biraz farklıdır. Ancak bu durumda, evet, Bunu yapabilirdi. HEDEF KİTLE: açıklayabilir misiniz kopya adresi? ANDI PENG: Evet. Böylece sadece-- Ben bu Bir değer doldurmak vermedi ama diğer sadece bazı rasgele var biz umurumda değil çöp değer. Program başladıktan sonra Çünkü Eğer biz aslında yok olduğunu fark Gerçekten ne umurumda Gerçek adresleri vardır biz sadece bilmek gerekir Ne adreslerde var. Evet. HEDEF KİTLE: on int sonraki yıldız İkinci satır, farklı edemememden var ANDI PENG: Evet. HEDEF KİTLE: --the dereferencing ve yıldız referans? ANDI PENG: Evet. C- yazarları Yani kim dilini yazmaya karar verdim C- çok akıllı değildi. Onlar çalışırken çok akıllı değil Bunu yapmalıyız anlamaya. O bendim, ben kesinlikle olur İki farklı karakterleri kullanın. Ama aynı bir kullanmaya karar verdi. Yani bir int sonra yıldızı, Bu bilgisayar söyler Eğer bir işaretçi oluşturmak üzereyiz söyledi. Ama dereference etmeye çalışıyorsanız şey-- diğer bir deyişle, adrese gidin ve çekin somewhere-- verileri Yıldız farklı kullanılır. Yani siz sadece konusunda dikkatli olmak değil iki kullanır çıkmasını. Güzel. Evet? HEDEF KİTLE: Yani lazım tekrarlamak Ben following-- olduğumu emin olun ANDI PENG: Tamamen iyi. HEDEF KİTLE: sol tarafında --in Bu slayt, biz biliyoruz, bir şey yapmak. Biz bir tamsayı bildirmek [Duyulamaz] 5'e eşit olduğu. ANDI PENG: Evet. HEDEF KİTLE: Doğru. Ve sonra biz bir int yıldız şey var ve Tamam, biraz biz gibi, diyor Şimdi, bir tamsayı ilan Biz bir işaretçi ilan ediyoruz. ANDI PENG: Doğru. Doğru. HEDEF KİTLE: Sağ? Ve bizim gösterici ptr olduğunu. ANDI PENG: Evet. Işaretçi adı ptr olduğunu. Pointer. HEDEF KİTLE: Ve o zaman Sadece C söyler NX eşittir en değer erişmek istiyor o değeri tam sayı x x-- tamsayıdır atandı. ANDI PENG: Dikkatli olun işareti aslında x çünkü sen-- bilgisayar söyler size x ne adresini çekmek istiyorum. Yani işareti verir adres, yıldız size değer verir. HEDEF KİTLE: Yani biz adresini istiyoruz. En x at-- oldu diyelim ANDI PENG: Biz aslında Doğru ne x biliyor musun? Biz Ben-- o x Çünkü biliyorum Bu uyduruyor ama diyelim, keyfi, o 0x00 oldu. Sağ? Yani biz Adres 0x00 olduğunu biliyorum, ve bu yüzden biz gidip ampersand x zaman, biz biliyoruz 0x00 değerlendirmek gerekir. Hangi biz saklanan neden Bizim işaretçi değeri olarak. bu mantıklı mı? HEDEF KİTLE: Evet. Ve kopya inceleyebilirsiniz ptr-- gider ANDI PENG: Doğru. HEDEF KİTLE: --which olduğunu biz ettik bir işaretçi bize beyan tamsayı x adresi. ANDI PENG: Evet. HEDEF KİTLE: Ve bu bir olgu, yıldız ptr = 5 x değerine eşit. ANDI PENG: Doğru. HEDEF KİTLE: Serin. Ve bu almak için basit bir yoldur Bu ya da sadece bu yol-- ANDI PENG: Peki şu anda Bizim için çok mantıklı görünmüyor yapıyor, bu zaman harcamak için Bu süper karmaşık bir şey olduğunda Tüm biz sadece iki oluşturmak olduğunu yaptık 5 değeri ile tamsayılar, değil mi? Bu mantıklı değil. Ama bir kez biz üzerinden gidersiniz bellek ayırma ve- yaparız bu neden olabilir gitmek kullanışlı ve yararlı sonra. Ben sadece yok Dediğimde bana güven sizin için bu keyfi işlevler oluşturmak Biz çünkü adamlar öğrenmek Sizinle uğraşmak için çalışıyor. Orada aslında tüm bunlar için kullandığı şeyler ve biz onlar hakkında konuşacağız. HEDEF KİTLE: Korku. ANDI PENG: Evet. HEDEF KİTLE: [duyulamaz]. ANDI PENG: İyi bir soru. HEDEF KİTLE: [duyulamaz]. ANDI PENG: Öyle değil. Gerçekten değil. HEDEF KİTLE: --two değişkenler bu da eşit [duyulamaz]. TAMAM. ANDI PENG: Evet. TAMAM. Ben geçmeden önce, herkes açıktır? Ben biraz geç aldım, Taylor biliyorum. Tamam. Bu çevrimiçi olduğunu. İlk 20 izleyeceğim dakika ve tüm iyi olacak. TAMAM. Güzel. Pekala. Yani bu temelde tür bir biz sadece yaptığımız benzer bir şey. Bu sadece bir grafik formda var. Ne izlemek olsaydı oluverdi, int x, 5 eşittir Bütün bu nokta da yaptık int türünde x isimli bir değişken oluşturmak. Biz saklamak için gidiyoruz Bunun 5 iç değeri. Biz değil, çünkü hiçbir işaretçi var aslında doğru, henüz bir gösterici yarattı? Ve sonra bir sonraki içinde çizgi, int yıldız işaretçi, biz aslında nereli işte fiziksel işaretçi oluşturma ve biz bu ayarı ediyoruz ya da referans eşit işareti x işaretçi. Hangi nerede olursanız olun içinde hafıza Bu olması oldu. Aslında rahatsız etmedi Bir değer bu sefer oluşturan. Ancak bu durumda, o nokta Eğer eşit olacaktır. Ve sonra orada, yıldız işaretçiyi kaldırma olduğunu. Biz konum İşte bu noktada bilgi çekerek. Yani x bu değeri aslında 35 eşit olacak. Bu yüzden bu noktada, biz aslında ettik Sadece 35 x yeniden başlatılmakta Aslında x dokunmadan. Sadece işaretçi Bu, x işaret ediyordu biz aslında ne x değiştirebilirsiniz. Ben de bu dışarı çekmek için gidiyorum. Yani burada biz yarattık Burada bazı rasgele adres. Sadece tekrar 0x00 diyelim. Sadece bu adres diyelim. Ve biz bir tamsayı adlı x yarattık ve bunu atadığınız değeri 5'tir. İkinci satırda, int pointer-- şimdi biz ettik Bu ikinci şey var burada adı pointer-- ve biz diyelim aşağıdaki amaçlara gidiyoruz diğer bazı rasgele bellek adresi. Yani biz bu ayarlamak için gidiyoruz ne olursa olsun eşit oldu. Ve bu işaretçi gidiyor x değeri doğru işaret Ve sonra, biz değiştirirseniz Şeyin biz yıldız işaretçi yaparsak, Buna gidiyor Bizim işaretçi değeri. Bu durumda, bu parça olacak Bu x bu değere üzerinde ok ve 35 bunu değiştirmek için gidiyor. Etkili, biz sadece değişti x dokunmadan x. Sadece referans işaretçileri sayesinde, biz gidip x değerini değiştirebilirsiniz. bu mantıklı mı? Yani bu şekilde biz aslında yeniden adlandırabilir ve rechange ve yeniden atamakta değerler we did not şeyler Aslında kendimizi yapmak. Bu herkese mantıklı mı? Güzel. TAMAM. Burada çok karmaşık grafik. Satır satır gidin. Esasen, sadece tam yapmak Ben sadece yaptım aynı şeyi. Ben taşınmadan önce, ben Gerçekten sadece yapmak istiyorum Herkesin bu konuda gerçekten açıktır. Buraya kadar Yani elimizdeki kodu int 3 eşittir b 4 eşittir, c 5 eşittir. Bu yüzden adında üç tamsayı yarattık a, b ve 3, 4 ve 5'e eşittir, c. Ve sonra biz üç işaretçiler yaratıyoruz Bu değişkenlerin her birine o nokta. Ve şimdi biz gidiyoruz esasen üzerinden gitmek Üzerlerinde çalıştırdığınız zaman ne olur. Yani onları çizin. I do not paper-- bir sayfa alın Siz tüm kağıtları varsa bilmek, ama o sizin belki Bilmeyenler yapmak sizin kim ödünç. Kağıt yaprak alın ve satır satır gidin. Ve bunu her operasyonda, Ben sizler aslında dışarı yazmak istiyorum Bu noktada, b ve c ne. Adresleri nelerdir ve ne a, b ve c işaret işaretçileri Bu noktada? Ve sonra umarım bu tür sizleri adım olacaktır işaretçileri düşünmek nasıl aracılığıyla. Biz gitmek için gidiyoruz değil bunların tümü boyunca uzanabilir. Belki de five-- vereceğim gibi üç dakika. Ilk birkaç on başlayın. Ah. Üzgünüz. HEDEF KİTLE: İkinci satırda, neden Yıldız [duyulamaz] değişken değildir? ANDI'nin PENG: in Ol operatörler, ilk haftasında, biz hakkında konuştuk artı eşittir yaparsanız, bu sadece bir artı c eşittir anlamına gelir. Bu case-- yüzden bu başka bir şeydir Yıldız kullanılabilir hangi yolu. Referans ek olarak ve işaretçiler ilan Ayrıca öyle hatırlıyorum çarpma anlamına gelir. Bu yüzden, bu durumda, sadece olur a kere c eşittir olacak. Bu sadece farklı değil yazılı yolu. HEDEF KİTLE: a kere c eşittir. ANDI PENG: Evet. HEDEF KİTLE: Bu eğer ne anlama geliyor bir işareti mektup diyor? ANDI PENG: Ampersand araçları Eğer sen ki- gidiyoruz göstericidir yere gidiş işaret ve adresi çekerek. Yani işareti Size adresi verir, yıldız var size gerçek değerini verir. HEDEF KİTLE: Biz Are satır satır üzerine bina? ANDI PENG: Sen satır satır üzerine bina. Dolayısıyla, sadece az bir satır gitmek Bir zaman ve sonra-- seni hakkında endişelenmenize gerek yok Her şeyi bitirme. En yoluyla almak için çalışalım belki iki, üç satır ve sonra biz toplanır ve bu bitiririz. Siz kaybolur eğer tamamen Tamam. Bu gerçekten zor bir kavramdır. Sizler sınıfta endişeli iseniz David dediğim gibi böyle gider, öyle değil. Biz ulaşıyoruz Zorluk kavramsal zirve ve sonra gidiyor aşağı doğru eğimli olacak. Yani siz neredeyse vardır. Biz şeker bir sürü almak zorunda kamburu ile çocuklar. Ben yıkılmasından sonra hemen hemen düşünüyorum Biz iyiye olacak kırmak ve hayat tekrar iyi olacak. Hiç yüzden hiçbir endişe. Pekala. Ben adamlar sana 20 veririm saniye daha fazla tamamlamayı. TAMAM. Pekala. Şimdi bu bir bıçak atalım. Siz gibi, bana cevap vermek Ben sadece bunları yazmak için gidiyorum. Ve umarım biz-- I can? Ben aslında bunu yazamazsınız. Ben gemide çizmek gerekir. Yani burada bu ilk satırında Biz b yıldız c eşittir var. Ayrıca Elliot kadar getirdi Gerçekten, gerçekten iyi bir nokta. Ben ek olarak bu unuttum çünkü iki yolu biz yıldız sembolünü kullanabilirsiniz, Üçüncü yol, aslında var. Çarpma. Ve böylece sırf karışık alamadım Bu bir yıldız kullanarak ilk yoludur. Sadece bilgisayar söylüyor Ben bir işaretçi oluşturmak için yaklaşık olduğumu. Yaparak ikinci yolu işaretçinizin yıldız, İstediğin işaretçi söyler Bu işaretçi de verilere erişmek için. Sonra, tabii ki, orada sadece basit çarpma İki sayı arasındaki söyleyen Ben iki çarpmak istiyorum. Yani pek çok yolu var Biz yıldız sembolünü kullanabilirsiniz. Karışık alamadım. Sadece siz anladığınızdan emin olun tam olarak ne üçü yapıyoruz. Bu ilk satırda Yani a b c süreleri eşittir. Öyleyse üzerinden gidelim neler a, c nedir, b nedir nedir? Ve bir gösterici, ne b gösterici ve c işaretçi? Eşit olanlar hepsi nelerdir? TAMAM. Bir 3 eşittir Yani biz başlamak, b 4 eşittir ve c sağ, 5 eşittir? Can, ilk satırdan sonra Yani Biri ne olduğunu söyle? Evet. Sadece cevapları haykırmak için çekinmeyin. 20. İyi. B nedir? İZLEYİCİ: 4. ANDI PENG: c nedir? İZLEYİCİ: 5. ANDI PENG: Yay. İyi. Pa, pb ve pc nelerdir? HEDEF KİTLE: 000001 ve 002? ANDI PENG: Evet. Bir hile soru Yani tür ama gerçekten burada çünkü Gerçek anıları dışarı çekti. Fakat, çünkü örneğin biz değiliz aslında bu sayılar ne olduğunu biliyorum, biz sadece işareti söyleyebiliriz. Ben bile bilmiyorum ben bir ve işareti çizebilirsiniz. Bu da-- var bunu nasıl yapıyorsun? HEDEF KİTLE: Bir sekiz çizim gibi. ANDI PENG: Bir sekiz gibi. Bunun gibi. TAMAM. HEDEF KİTLE: Bingo. ANDI PENG: it Killing. Yani bir ve imi, sadece bunu yapabilirsiniz. Biz aslında çünkü bakım şey bu değeri ve bazı uzunluğunda eşek değeri neyse, biz sadece giong kullanıyorsanız işareti a söyleyecek. Sonra pb ne? HEDEF KİTLE: [duyulamaz]. ANDI PENG: Evet. Güzel. Pekala. Kolay ilk satırı. Biz bu var. İşaretçiler kolaydır. Tamam. İkinci çizgi. Ve böylece yıldızı eşittir aynıdır Bir söyleyerek şey kez c eşittir. Bu yazı sadece kolay bir yolu var. Yani biz yapmaya çalışmıyoruz Bir nokta ya da burada herhangi bir şey. Yani ilk satır ile yapılır. İkinci satırda nedir sonra bir bir kere c eşittir do? HEDEF KİTLE: 100? ANDI PENG: 100 var. İyi. Nasıl b hakkında? HEDEF KİTLE: [duyulamaz]. ANDI PENG: Nasıl c dersiniz? HEDEF KİTLE: [duyulamaz]. ANDI PENG: Ve nasıl işaretçiler dersiniz? Doğru, aynı onlar-- mısınız? TAMAM. Şimdi üçüncü satır. Biraz yanıltıcıdır. b yıldızı pa eşittir. Birisi ilk bana söyleyebilir, Ne yıldız pa eşit mi? HEDEF KİTLE: Bu değer bir de depolanır. ANDI PENG: Kesinlikle. Ve değeri nedir bir de depolanır? İZLEYİCİ: 100. ANDI PENG: Tamam. Yani sonra ne olurdu kod bu hat yürütme? HEDEF KİTLE: [duyulamaz]. ANDI PENG: b ne olacak? İZLEYİCİ: 100. ANDI PENG: Evet. Ve sonra her şey olduğu hemen hemen değişmeden, değil mi? Biz bunu dokunmadı çünkü. Güzel. Dördüncü hat. Biraz daha karmaşık. Yani pc-- bir kez daha, pc göstericisidir O pa eşittir C- işaret etti. Bir Nedir? İZLEYİCİ: 100. ANDI PENG: b nedir? İZLEYİCİ: 100. ANDI PENG: c nedir? İZLEYİCİ: 5. ANDI PENG: pa nedir? HEDEF KİTLE: Bir ve işareti. ANDI PENG: pb? HEDEF KİTLE: Ampersand, b. ANDI PENG: Ve zor, pc şimdi nedir? HEDEF KİTLE: Bir ve işareti. ANDI PENG: Yay. Woo hoo. Siz gördünüz mü? Bu, tüm haklı. Çok kötü değil. Hepsi değilse biz daha şeker var Doğru, ama hepsi doğru olduğunu düşünüyorum. Ve biz sadece bir gitmek için gidiyoruz biz zor olanları vurmak önce daha fazla. Cevaplar Buraya var. Esasen, bu olduğunu biliyorum Sadece bu noktada matematik gibi. Eğer gibi basit denklemler varsa artı b, bir kere c yapmak kolaydır. Ve üzerine genişleyen başladığınızda o, sadece işlemlerin sırasını gidin. Önce aynı şey. Takip ve eğer tutun senin Yıldız şey öncedir. Bu size değer söyler. Eğer bir ve daha önce varsa bir şey, size adresini söyler. Ve atamak gerekir ya işaretçileri veya bu değer. Yani bu aşkın gidelim Sonuncusu çabucak. Değil bu sonuncusu, üzgünüm. Aslında, siz seçebilirsiniz. Hangisi siz gitmek istiyorsun Üç kalan out üzerinde Sahip olduğumuz? Ben sadece bunu yapabileceğimi sanmıyorum Biz sadece hat atlamak olamaz çünkü. TAMAM. Sizler, bir seçeneğimiz yok bir son sadece üçte biri. Yıldız pc b kez c eşittir. HEDEF KİTLE: Yıldız pb? HEDEF KİTLE: Yıldız pb. ANDI PENG: Üzgünüm? HEDEF KİTLE: Yıldız pb. ANDI PENG: Yıldız pb. Ah, benim hatam. Yıldız pb b kez c eşittir. Ben adamlar sana 10 saniye vereceğim. Sadece çabuk düşünüyorum. Bu biz çok olması uzak ne biz sonra ne olur Oradaki beşinci satırı çalıştırmak? TAMAM. Bir Nedir? İZLEYİCİ: 100. ANDI'nin PENG: 100. B şimdi ne? HEDEF KİTLE: 500. ANDI PENG: İyi. Biri açıklamak isteyen var mı Bana 500 bu yüzden? Ben biz do not feel like aslında hiç b dokundu. Nasıl değiştirmeye başardınız b dokunmadan b değeri var mı? Evet? HEDEF KİTLE: Çünkü yıldız pb pb-- de değer anlamına gelir ANDI PENG: Kesinlikle. HEDEF KİTLE: --which b. ANDI PENG: Kesinlikle. Yani burada bizim şemada, bizim işaretçi pb aslında bu hakkın işaret Burada, burada gerçek fiziksel b. Ve böylece gidip eğer Eğer yıldız pb yapmak, işte işaretçinizin senin ok takip ve fiziksel olarak b değerini değiştirerek. Yani biz değişti oda neden var Aslında b dokunmadan 500. Ve sonra her şey kalır biz dokunmadı çünkü aynı. O b öyle. Güzel. Ve daha sonra-- İZLEYİCİ: Ben sadece bir sorum var. ANDI PENG: Evet? HEDEF KİTLE: beri we've-- işareti c artık yok, O işareti a demek Şimdi aynı şey yönlendirme? ANDI PENG: Evet. Yani-- HEDEF KİTLE: Yani ok tür sadece ve- hamle ANDI'nin PENG: Böylece essentially-- İZLEYİCİ: Biz access-- olamaz --now ANDI PENG: --when biz I kalpazanın on-- dereference c. Neydi o? Üçüncü satır? Dördüncü. Dördüncü hat. Yaptığımız Tüm esasen oldu Bu ok değiştirmek ve bir yerine doğru işaret var. HEDEF KİTLE: Yani biz artık c erişemiyor. ANDI PENG: Bu olsaydı kesin sayı, bunu erişebilir. Ama hayır. Biz bir işaretçi yok Artık c bakacak. Eğer isteseydim sanırım size bunu yeniden erişim Başka yaratacak c-işaret yeniden işaretçi veya bu yönlendiricide başvuru yapıldı ve geri çekti. Yani, hayır, olduğu gibi şu anda, üç işaretçileri, bunların hiçbiri c etmektedir. Herkes iyi? Cevaplar çevrimiçi. Bölüm sonra, üzerine gitmek çekinmeyin Son iki test kendinizi. Aynı kavramlar, sadece biraz yanıltıcıdır. Sadece mantığıyla üzerinden takip neden şeyler farklı şeylerdir. Ve ipucu, işaretçiler Sevdiğimiz bir konu Onlar çünkü sınavlar hakkında kapsayacak şekilde kavramsal çok zor. Bu yüzden sana öneririm adamlar bu grafiği gözden veya benzer kavramlar için yırtmaç Bu sınav öncesinde önümüzdeki hafta. HEDEF KİTLE: Afedersin. ANDI PENG: Evet? HEDEF KİTLE: [duyulamaz] Nihai Şehre [duyulamaz]. ANDI PENG: 50,000? Ben aşağı geri takip etmek gerekir. Ama çizgiyi düşünüyorum somewhere-- daha önce, dev c değeri yarattı. c bu dev şeyi eşittir hangi 100 kez 500. Hayır. HEDEF KİTLE: [duyulamaz]. ANDI PENG: Evet. 10.000 100 kez 100. Hangi 10.000 olduğunu. Yani geri aşağı orada sen b ve c çarparak. B-- işaret işaretçi Yani 500-- kez değeri, bir bir-- HEDEF KİTLE: [duyulamaz]. ANDI PENG: Belki yanlış. HEDEF KİTLE: Hayır, hayır, öyle değil. [Duyulamaz] c ibre artık bir- işaret olduğunu ANDI PENG: Evet. O haklı. HEDEF KİTLE: --O bir eşittir de onun en bulunuyor Bir times-- o c değerdir. ANDI PENG: Biraz diyebilir miyiz biraz daha yüksek sesle, böylece herkes sizi duyabiliyor musun? HEDEF KİTLE: c Yani işaretçi şimdi işaret a işaretçi işaret için kullanılan ne aşağıdaki amaçlara hala does-- ama işaret Doğru, bir olan aynı şey? Değeri Ancak o yeni tanımlanan oldu. Ve bunun başında sen Önceden 100 kat olduğunu söyleyerek 500 b değer. Ve böylece ne kadar olduğunu var. 50,000. Onlar bu yeniden atama şeyin c hafıza alanı c işaretçi bu-- Bir olduğu işaret ediyor. Yani 50.000 olmak için yeniden tanımlayan ediyoruz. ANDI PENG: O olabilir Benim için bölüm öğretmek. Bir dahaki sefere hepsi senin. İşte. İşte bunun için daha fazla şeker var. Bunun için şeker hak ediyor. İZLEYİCİ: Neredeyse o yakalandı. ANDI PENG: Neredeyse o yakalandı. Her şey yolunda. Evet. Ama tam olarak doğru idi. Yani yapman gerekeni Ben biz düşünüyorum ki- olduğunu gerçeği takip etmek zorunda işaretçileri şimdi ki farklı değerlere işaret. Yani value-- üzgünüm, c işaretçi için repointed. Ve böylece bizim sayıların tüm kaymıştır söyledi. Erişmek Ve o, bu yüzden değeri farklı, orada saklanır. bu mantıklı mı? TAMAM. Güzel. İyi Herkes, ben geçmeden önce? HEDEF KİTLE: Gittiğin zaman Şeyin mu Sol sütundaki satır aşağı ilk satır, ikinci satır etkiler ve daha sonra gibi, Bay Kane saniyedir-- var: ANDI PENG: Evet. Bu yüzden ben sadece yazdığınız kodu hayal a b c kez eşittir içinde, bir yıldız c eşittir. Sadece ben var olduğunu hayal Sadece bu kodu koştum ve ben çıktısını vermedi neler Bunların hepsi oldu. Ben olsaydım, sadece ilk yazdırmak için üstündeki şey, burada olurdu. Ben tüm koştum sonra ise kod bu satırları, Ne bu değerler olmalıdır sonunda olmak vardır. Yani aslında burada bir program yazdık. Ben tüm yapmadım çarpma. Ama sadece hayal. Yani burada sadece var Program işaretçileri aradı. Ben Tamam guys-- eğer yakınlaştırmak için gidiyorum. Yani değişkenleri a, b ve c oluşturduk. Ben onları eşit kurdum 3, 4 ve 5 ve ettik karşılık gelen işaretçi hazırlandı. Ve sonra burada ben sadece gidiyorum Bunun ne olduğunu yazdırmak için. Bu yüzden bana bu çalıştırın. Size adamların see-- bok yapın. Siz nasıl görüyor musunuz, b ve c bu değerleri ama onların işaretçileri bu dev vardır biz umurumda değil o çöp değeri var mı? Yani aslında fiş olsaydı Bütün çoğalması ve daha sonra, tüm yeniden yazdırmak Bu, o dışarı yürütülür Bu alt kısmında ne. Siz oynamak istiyorsanız Yani aslında fiziksel kodlama ile, siz sadece bu bütün takabilirsiniz. Kod Online ve sonra sizin yanınızdaki olacak değerler sonradan buna basılması gerekir. Ve sonra nasıl işaretçi göreceksiniz adresler aslında yeniden oylandı. Peki nasıl göreceksiniz c adresi aslında olur Bir adresi ne olursa olsun eşit. Ve onlar maç olacak ne olursa olsun Bu büyük bir sayıdır. İyi soru. Herkes iyi mi? Sorularınız için son bir çağrı. TAMAM. Pekala. Yani aklını sahip hazırlamak şişmiş biraz daha ısırdı. Diziler aslında sadece noktalar şunlardır. Yani hepsi burada. Ve dizeleri nelerdir, hatırladın mı? Onlar da diziler konum. Peki dizeleri aslında nelerdir? Onlar işaretçiler gibisin Daha fazla karakter bir char başında. Yani başlangıç ​​sadece kavramları var birbirinin üstüne inşa etmek. Yani neden-- sensin derste hatırlıyorum, David, O karşılaştırma vardı int dize anne sonra bir şey ve bir Başka bir dize anne ve birbirlerine iki eşit çalışın, onlar size farklı değerler verir. It dizeleri nedeniyle kendileri değerler değildir. Onlar tüm bellek adresleri vardır char-- Onlar karakter ve dizilerin diziler Sadece değineği vardır. Böylece, esas olarak, ne zaman David comparing-- oldu Ben tüm bu silmek Tamam olur? Yani David derste zaman vardı anne, anne eşittir Bize aynı şey gibi görünüyor. Sağ? Ama, altında bilgisayar davlumbaz, aslında ne oluyor bu dizedir Tüm bu olan bir dizidir. Bir ampersand-- veya, üzgünüm, sonunda boş terminatör ile. Sağ? Backslash 0. Yanlış ters eğik çizgi. Böylece tüm hepsi were-- Bu iki şeritler were-- boyut ayak dizi ile vardır anne ve anne mektupları. Ama ne diziler gerçekten sadece vardır bellekte belirli bir yere işaretçileri Bu sizin diziyi başlatmak için söyler. Yani bu durumda, bütün bu oldu sadece bazı çöp değeri oldu bazı rasgele işaretçi. Ve tüm bu oldu diğer bazı çöp değer. Sadece 0x200 diyelim. Ve böylece eşit çalıştığınızda Onları birbirine iki, Onlar yüzünden yanlış olarak değerlendirmek işaretçiler addresses-- bunlar were-- farklı idi. Sen eğer farklı Oysa Gerçek tamsayılar karşılaştırmak için çalışıyor. Eğer compare-- istedim gibi Son example-- int a içinde b, Onlar değerlendirirsiniz true Elliot dediği gibi onlar için saklandı tamsayı ve sadece değerlerini değerlendirmek ediyoruz. Burada, çünkü dizeleri diziler ve tüm diziler işaretçiler vardır onlar değil bu yüzden birbirine eşit. Yani bir tür, bu grafik kafa karıştırıcı. Ama sadece hayal edelim. Biz boyutta bir dizi oluşturmak ettik 2-- 0, 0 ila indeksi 3, 1 değerleri ile 1, 2, 2 ve 3 tanesi saklanır. Tüm dizi gerçekten şimdi sadece burada does-- Ben bir işaretçi oluştururken söylüyorlar olduğunu diziye En değer erişme Bu dizinin ilk endeks. Yani burada 0 olurdu. Sağ? Herkes nasıl anladı mı İlk satır değerlendirdi mi? Büyük. Ve böylece başlatmak istedim Bundan sonra ilave değerler, hepimiz yeniden atama olduğunu yapıyoruz. Bu yüzden, 0, 1, 2, 1. Böylece bir kez bu işaretçi olduğunu Burada işaret, hepimiz yapıyoruz aşağı hareket ediyor. Yani artı 1 ne yapıyor. Ve sonra biz orada 2 koyabilirsiniz. Biz birinde 3 koymak isteseydi sonra biz bu işaretçi silmek istiyorum Orada 3 koydu. Bu mantıklı herkes yapar? Evet. Bir soru var mıydı? HEDEF KİTLE: Bu [duyulamaz] var var Bir soru, ben yine de söyleyeceğim. Ben aslında bir olduğunu sanmıyorum İngilizce ama- soru, dizi eşittir 1 mantıklı. Biz, tamam, gibi ilk şeysin. Ama işler 0 endeksi vardır [Duyulamaz] dizi 0 eşittir İlk noktayı gösterir. ANDI PENG: Evet. Yani aslında ne ben burada yapıyorum olduğunu Ben ilk indeksi erişen değilim. Tüm ben, bu yüzden her şeyden önce doing-- oldu Yıldız dizisi ne yapar söyle? Bir işaretçi önce bir yıldız ne yapar? HEDEF KİTLE: Bir işaretçi belirtir. Yani bir işaretçi ilan ediyoruz. Bu de-- ANDI'nin PENG: Bu, hangi araç dereferences gider ve aslında değerini alır. Sağ? Bu durumda Yani, almak istiyorum değer burada ve 1 olarak ayarlanmış. Evet? Yani bilmiyorum actually-- değilim Gerçekten bu endeksine umurumda, Ben yapıyorum hepsi sadece aşağı yineleme olduğunu dizinin aşağı benim işaretçi hareket ettirerek. Ve sonra sonunda ben Doğru, bunu durdurmak zorunda? Ve ben durdurmak yolu Ben vurduğunuzda durumda olduğunu bir dize, bir boş sonlandırıcı. Ben görürsem ben back-- vurursan ben, oh, biliyorum Ters eğik çizgi 0, ben bu konuda bittim biliyorum ve ben sadece can biliyorum yineleme durdurmak. Gerçekten iyi bir soru. Ve biz gerçekten uzak gidersiniz Bu önümüzdeki hafta derinlemesine Çünkü gidiyor parça işaretçileri kullanımı bir sürü gerektirir. Ama şimdi biliyorum, Bu sadece farklı more-- var: Bunun için sadece farklı bir yolu Bilgisayar, esasen, yazma Biz ne yapıyoruz oldum. David de dediği gibi , yol ders biz bir dizi yaparak sadece erişmek Dizi 0, dirsek 0, biz eğer sadece İlk değer erişmek istiyordu. Tüm bilgisayar dönüyor yapıyor İçine ve kendini yineleme söyledi. Bu yüzden sözdizimsel diyoruz Sadece bir şeker Kullanıcı dostu söyleyerek bir fantezi yolu programlama bilmeden bizi yolları. Ama bilgisayar altında, ne yapıyor, aslında sadece geçiriyor ayar var bir işaretçi. Ama biz bunu yazmak yol, Bizim için kolay, çünkü açısından şeyleri düşünmek kutuları ve kutuları aşağı taşımak için nasıl parantez olan gereğidir. Maalesef, bu, gerçekten Gerçekten kötü evet ama-. Nasıl Yani olacaktır: İZLEYİCİ İki dizeleri karşılaştırmak birbirlerine eşit olup olmadığınızı görmek için? ANDI PENG: Böylece Davut yazdı konuşmasında bu program bu yüzden sadece gidiyorum hızlı ve kısaca bitti. Bunu yapacağını yolu Bu aslında olur ise gidin ve karşılaştırmak gerekir addresses-- veya değerler işaretçiler elde. Peki nasıl yapmak hatırlıyorum Burada değerini elde? Burada adrese umurumda değil. Aslında nasıl alabilirim ne olursa olsun değeri burada? HEDEF KİTLE: [duyulamaz]. ANDI PENG: Kesinlikle. Yani yıldız karşılaştırmak Burada burada yıldızı karşı. O eşittir. Ve sonra aşağı gitmek. Burada yıldız ve Burada eşit yıldız? TAMAM. Onlar eşitiz. Ve sen sadece aşağı inmeye devam Her iki sonuna isabet ettik kadar. Ve hepsi o, eşitse Eğer dize eşit olduğunu biliyorum. Ve C aslında sahip bir işlevi çağrılır yazılı Dize Zorunlu olan aslında sadece dont nedenle 'sizin için yapar Kendiniz yazmak zorunda. Evet? İZLEYİCİ: Ben derste düşünüyorum Biz karşılaştırmak ne zaman olduğunu. Biz gerçekten ihtiyacımız yok pi gibi sayaç, değil mi? ANDI PENG: Sen değil biz gerçekten umurumda değil, çünkü kaç kutu biz aracılığıyla iterated ettik. Biz umurumda hepimiz gidiyoruz olduğunu Ben durdurmak için öğrenene kadar devam edin. Ve ne zaman durmak bilmiyor gösterge çeşit var Eğer boş bir sonlandırıcı konum olduğunu. Evet. Yani-- HEDEF KİTLE: [duyulamaz]. ANDI PENG: Evet. Karşılaştırılması durumunda Yani dizeleri, gerçekten yok Kaç harf bakım Ben karşılaştırmak gerekir mudur onlar doğru veya false iseniz birbirlerine eşitiz. Kaç harf umurumda değil Bunların her biri, iyi misin? Ben sadece bu umurumda Bu ve biriyle eşleşir kibrit ve bir sonra sonra Sonuna kadar tüm yol eşleşir. Sağ? bu mantıklı mı? Yani gerçekten, kaç harf umurumda değil Ben sadece umurumda tüm harfleri olduğunu maç. Evet. TAMAM. Ben bundan on taşıyabilir miyim? Büyük. Biz kısa biraz azalıyor Zaman yüzden sadece seni izin gidiyorum Çocuklar kısaca bu bakmak için. Kimliğinizi eğer içine Run Siz merak ediyoruz. Ve siz ne görüyorsun Bu yazdırarak edilecektir. TAMAM. Biz de değinmek gerekir Yani bir şey Bit işareti aritmetik fikirdir. Hangi o tüm bir yerine ayarlama daha saklanan ne değerleri işaretçinizin adreste Sadece gerçekten değişiyor adres kendisi. Insan istediği gibi Yani eğer el işaretçi ayarlamak için, Bunu yapacağını yolu sadece bir işaretçi n katı büyüklüğünde yapmak. Sağ? Yani bir int. Bir int-- kaç bayt bellekte bir int nedir? Bu doğru, dört değil mi? Biliyorum Yani eğer ben bütün bir dizi var ints ve bunu birine işaret etmek istiyorum sonradan, ben sadece var bilirdiniz Doğru, dört bayt benim işaretçi aşağı inmek? Ve böylece n kat boyutu işaretçi bayt Ancak birçok bayt sadece sensin tarafından işaretçiyi aşağı taşımak için gidiyor. Yani, örneğin, biz bir dizi varsa ints, ilki, diyelim 0x00 olarak depolanır. Sen bir sonraki de olacak biliyorum 0x04 o dört bayt sonra çünkü. Ve bundan sonra bir gidiyor 0x08 ve benzeri ve benzeri olacak. Ve böylece, çocuklar, bir göz atın. Burada yapıyoruz tek şey Eğer bir işaretçi y var ve bu ekliyoruz senin Bellek aşağı hareket böylece hafıza blokları tahsis edilmiştir. Daha yüksek bir seviyeye kavramının tür. Siz ihtiyacınız olmayacak Bu hafta için bilmek, ama bu orada aşağı yapıyor hepsi bu. TAMAM. Başka bir şaka zamanı. İki dizeleri bir bara girer. Bir Ben Bir rom istiyorum, diyor Kok çöp değerleri. Diğer sen mazur gerekecek diyor arkadaşım, o boş sonlandırılmış değil. Siz olsun. Özür dilerim. Bu benim kendimi tutmak nasıl Ben bölüm için hazırlık yaparken gidiyor Ben bir kaç şaka slaytlar eklemek olduğunu. Neyse. TAMAM. Ben on-- taşınmadan önce Böylece, esas olarak, biz ettik kapsanan tüm kavramsal işaretçileri ile ilgili konular. Ve sonra biz hareketli talk-- gidiyoruz Bu neden önemli hakkında daha fazla konuşmak ve bu sığar nasıl bellek yönetimi fikir. Ama geçmeden önce, Herkes soruları var mı işaretçi kullanımı hakkında, neler oluyor Eğer işaretçileri oluştururken üzerinde, nasıl her başvuran Diğer, nasıl dereferencing var? Hakkında herhangi bir sorunuz Ben geçmeden önce böyle? TAMAM. Büyük. Yani bu bize getiriyor Daha büyük üst düzey kavramı Bir bütün olarak bellek yönetimi. Bu nedenle, esas itibarıyla içinde Bilgisayarınız var belleğin iki temel tipi veya Bellek bölgeler saklanır. Sen ne denir burada var yığın ve buraya sahip Ne yığın denir. Ve biz hakkında konuşmak için gidiyoruz Yığın ilk olarak, çünkü daha finagley biri size tür kavramsal var Neler anlıyorum. Böylece tüm yığın düşün bu-- bu bellek fiziksel yığını olarak Eğer bir bellek bloğu var burada senin program için bir kenara oluyor çalışır durumdayken. Ve bu tüm esas, nerede Yerel değişkenler saklanır. Yani bu sadece bir yakınlaştırılmış Bu yığının resimde. Orada yığını, ben sadece biraz daha yakınlaştırma. Yani, temelde, bir yığın var Programda fonksiyonu bir demet. Yani sadece geri gidelim hafta iki örnek bizim ana işlevi vardı nerede bir de küp fonksiyonu olarak Biz bir işlevi oluşturmak için çalıştı nerede giriş olarak parametreleri aldı cubed--, Onları cubed ve iade Onları geri ana kadar. Yani bu böyle bellekte depolanır Eğer ana işleve sahip olduğunu Burada altta. Sonra her bir ilave fonksiyonu ile Bu çağrı ve bunun üzerine ekleyin, Bellek sadece üstüne dizer. Fiziksel yığını olarak düşünün. Ve böylece hepiniz ana var ana fonksiyonların değişkenler, Burada oluyor her şey, saklı. Ve sonra çağrıldığında küp, gider ve Tüm bu kopyalarını oluşturur Parametreler ve bunları saklar farklı bir yerde, yukarıda. Ve böylece neden ilgilendiriyor? Biz bakım nedeni biz sadece can not olduğunu kullanmak parametreleri değişkenleri var-- burada-- ve biz bekliyoruz, onları değiştirmek Onları da doğru, burada değiştirilecek? Fikir onlar kurtardı konum olduğunu bellekteki farklı yerlerde bu nedenle, bu farklı erişen yaparken fonksiyonlar, sen oluyor ne düşündüğünüzü Aslında çünkü olmuyor bellek bitleri birbirine değildir. Ve bu yüzden gerçekten bir soru olduğunu Bize biraz anlamak için önemli , ne biz koşuyoruz zaman, eğer Bir program, bir fonksiyonun boyutu yani fiziksel olarak nasıl frame-- yığını kadar bellek biz vermek zorunda mı? Belki de dev bir fonksiyon yüzden var bunu bu kadar bellek vermek zorunda. Daha küçük olsaydı ama biz çok zevkli olur minik biraz gerekir. Yani fikir, biz koşuyoruz zaman olduğunu Bir program bu işlev boyutu Kaç bağlıdır değişkenler ve değişkenlerin tipi biz bunu vermek istiyorum. Ama ne numarası varsa variables-- ve boyutları, bu kararlı var sizin tarafınızdan kodlayıcı ama Gerçek belirlenir Programınızın kullanıcı. Ben bir işlevi oluşturmak istedim Yani eğer Bu, kullanıcının dizeleri aldı ama aslında ne kadar büyük bilmiyorum Bu dizeler benim için zor vardır Belirli tahsis etmek bellek miktarı gerekli. Sağ? Bu eğer function-- Çünkü eğer Bu kullanıcının dev dize girişleri, bir hata oluşturmak için gidiyor esasen denir ne Eğer ötesine taşma yığını nereye Sahip olduğunuz bellek sınırları. Ve böylece o zaman ne yapacağız? Biz sadece bu dev oluşturmak yapamıyorsanız her şeyin kaydedebilirsiniz yığını, biz bu sorunu çözmek için ne yapmalıyım? Yani biz ve konuşmak hareket edecek bellek, bu ikinci tür ve sonra biz nasıl konuşabiliriz iki birlikte kullanabileceğiniz Bu soruyu çözmek için. Yani şimdi biz yukarı taşımak için gidiyoruz belleğin farklı bir parçası Bizim bilgisayarda. Bu yığın denir. Böylece tüm yığın bir havuz olduğunu mevcut hafıza olduğunu dinamik tahsis edilebilir. Yani süre değiştirebilirsiniz Programınız çalışıyor. Ve böylece bir bölge içinde O can kullanılmayan bellek olabilir ki allowed-- olması fonksiyonu ile ayrılan denilen malloc veya bellek ayırma. Böylece, esas olarak, ne zaman Eğer bir program yapıyoruz dinamik bellek oluşturabilirsiniz öbek ve burada tüm aşağı kullanın. Ve işlevleri böylece daha sonra, tüm Burada öbek erişebilirsiniz. Ve böylece malloc, bu fikir David Biraz çabuk, kısaca geçiştirilmiştir derste için sadece bir yoludur Eğer hafıza kontrol etmek. Gibi, ne zaman sadece oluştururken Sadece olduğunuzda, işlevleri yığını ana işleve sahip Random işlevleri ile, Eğer çocukları olarak onları düşünüyorum sadece Onlarla bitince kaçtı. Onlar gerçekten kötü çocuklardı. Onları, sizi oluşturmak Onlara bir şey öğretmek, ve daha sonra istediğiniz zaman they tekrar erişmek orada sizin yanınızdaki çünkü Bellek sadece kaçtı. Ama malloc veya yığın, bir yoludur ve nerede daha iyi çocuk sahibi ne tür oluşturabilirsiniz Onları, onlara değerleri atamak, Gerçekten kulağa them-- kullanın İstediğin ancak bad-- bunları kullanmak, ancak daha sonra kontrol edebilmek Onları ve daha sonra belleği boşaltmak Bunları gerektiğinde. Öyleyse sen işin bitince senin fonksiyonu, çocuklar sana gel ve hala orada bu verileri var. Yani biz malloc veya oluşturmak yolu, Hafıza fonksiyonu geçersiz yıldızı tarafından bayt malloc boyutu. Yani bu sadece prototip Biz bunu niçin. Yani bir örnek bir işaretçi oluşturmak olduğunu int yıldızın pointer-- eşittir int-- yazın int malloc boyutu. Biz boyutunu yapmak neden nedeni So ve sadece bir number-- hepimiz biliyoruz, çünkü bir int dört bayt olduğunu haklıydın-- ancak bir int sadece dört olduğunu Belirli işletim sistemlerinde bayt. Bizim için fikri olarak programcılar biz o kod oluşturmak için olabilir istiyorum , tüm bilgisayarlarda değil, sadece koşmak bizim basit bilgisayarlar. Biz kullanmak ister ve neden bu kadar işte büyüklüğü ve sadece dört numara. Bu herkese mantıklı mı? Böylece tüm of-- boyutu bir C işlev ya da operatör olduğunu Hafıza yapar kaç bayt söyler değişkenin belli bir tip sürebilir. Yani bu durumda, bir int boyutu dörttür. Dört bayt. Ve malloc serbest gidiyor senin yığın dört byte kadar, sonra sonra main kullanabileceğiniz Fonksiyon hafızasını saklamak mümkün. Herkes şimdiye kadar bu konuda açık mı? Evet? İZLEYİCİ: Ben açık değilim ama Sadece clear-- üzerinde olması ANDI PENG: Tamam. Tamamen iyi. HEDEF KİTLE: --size taşımaktadır [duyulamaz] aslında can [duyulamaz] ve aslında yapacak biz istiyoruz şey. Bazı pseudocode değil. ANDI PENG: Hayır HEDEF KİTLE: Gerçek bir thing-- gibi ANDI PENG: Bu gerçek bir koddur. HEDEF KİTLE: --we kullanabilirsiniz. Bu gerçek değil. Güzel. ANDI PENG: boyutu C. ile birlikte geliyor HEDEF KİTLE: Bu benim hayatım mutlu yapar. ANDI PENG: Evet. Eğer tembel programcı iseniz Yani gibi Ben tür bazen duyuyorum, Ben ezberlemeye sevmiyorum Bir int ne boyutu Ben ezberlemeye sevmiyorum olduğunu float boyutuna olduğunu. Sadece boyutu ne söyler o ve o çok daha kolay. Pekala. Yani önemli bir şey hepiniz istediğiniz sen ne zaman akılda tutulması gereken malloc kullanarak her zaman olduğu null olup olmadığını görmek için kontrol etmelisiniz. Gibi Bu yüzden geri belirterek, öbek o resim. Yığın sadece bu dev Eğer var bellek yığını. Ve parçaları almak mümkün olmak istiyorum ve ondan bellek, doğru kullanmak? Ama hayır ne varsa Bu yığın daha fazla bellek? Ne Zaten bütün kullandıysanız ve bunun daha malloc deneyin? Bu yok. Sen niye Peki, bu bir hata alacaksın. Sen hatayı seg gidiyoruz. Gidiyorsun nerede bir segment hataya sahip var olmayan şeyleri erişmeye çalışın. Ve böylece yol yapıyoruz Bu ve yol biz biz kontrol olduğunu bilmek işaretçinin boş olmadığını görmek için. Yani eğer bir şey malloc vardı ve ben, hiçbir fazla bellek vardı çünkü bir hata basacaktır işaretçisi sadece null döndü. Ve böylece şekilde biz bu-- do Bu, sadece büyük bir tasarım Sadece bu-- herhangi bir ezberlemek zaman bir şey malloc çalışın, size ihtiyacınız olacak null olup olmadığını görmek için kontrol edin. Eğer denemek zaman Çünkü yığın bellek edinin Her zaman yapmak zorunda Eğer bellek var olduğundan emin olun. Yani hepsi bu. Yani hemen hemen bu üç kod satırları, ezberlemek. Her zaman malloc, onları plop. Onlara ihtiyacımız olacak. Ben size garanti Çünkü, biz gidiyoruz bir durumda ve bilgisayarınızda sizi sınamak için sen çünkü patlayacak bu erişim belleği denemek için gidiyoruz orada ve işler olacak çarpışma ve iyi olacak değil. Dolayısıyla, sadece beynine o delin. Malloc, boş. İyi. Pekala. Sonra bu doğurur ne olur sorusu biz bu bellek kullanarak bitirdiniz sonra. Bütün fikre Çünkü Malloc sahip olduğu biz alabilir bu yığın var bellek ve daha sonra bunu kullanabilirsiniz. Sağ? Ve sonra ne hatırlamak Biz onunla bitti, o sonra, Biz o zaman ücretsiz yapabilirsiniz. Bırak gitsin. Biz gidelim olabilir. Yoksa siz de kaçak gidiyoruz bellek ve daha kötü şeyler olacak. Esasen, her Belleği dokunuyorsun, kötü şeyler eğer olur doğru şeyler yapmazlar. Yani ilk görmek için kontrol etmek zorunda, Eğer bellek varsa. Bitirdiniz sonra Ve sonra, istediğiniz Onu özgür ve işletim sisteminizi izin Onu geri almak için. Bu yüzden bunu yolu sadece olduğunu işlevi, geçersiz özgür ve işaretçi belleğin o yığın. Yani örnek ücretsiz göstericidir. Bu, basit, oldukça kolay unutmak istemiyorum. Yani boş olup olmadığını ücretsiz bakın. Herkes iyi? Yani bir kez daha, kod, siz tür hızlı bir göz alabilir. Ben yeni sözdizimi bir sürü biliyorum ve Eğer ah, gibisin eğer, tamam yine ne anlama geliyor? Endişe etme. Bütün bu görüntülüyor olması gerekiyordu bir eylem, nasıl tüm bunları birlikte kullanılabilir. Yani bir araya getirildiği Geçmişte bir grup gibi slaytlar biz sadece gitti aracılığıyla tek bir program halinde. İZLEYİCİ: Bir anlamda Biz actually-- ki ANDI'nin PENG: Bir anlamda bu biz aslında kullanabilirsiniz. Sen, kimliği içine plop Bunu çalıştırabilir ve çalışmaya devam eder. HEDEF KİTLE: Tamam. Yani gerçek? ANDI PENG: İşte gerçek. Evet. Ben öyle yapmayı deneyin fontlar çok farklı Gerçek yazdığınızda o Kod yazı kodu ve benim not kodu farklı olduğunu ancak Aslında çalışıp çalışmadığını bilmiyorum. İZLEYİCİ: Hayır Bence-- ANDI PENG: Tamam. İZLEYİCİ: --sometimes [Duyulamaz] ve ben gibi, bu gerçekten sevimli olurdu aslında kullanışlı bir şey olsaydı ama sonra kullanılabilir bir şey değil. Ben bu kullanışlı bir şey olduğu gibi. ANDI PENG: Tamam. Evet. Ben birlikte bu geçmek gerekir. David gibi ol, çocuklar gerçekten üzgün sahte kod yazarken. Pekala. Evet? HEDEF KİTLE: Yani burada ptr aslında bir işaretçi değildir o bir bellek blok? ANDI PENG: Peki neden bahsediyorsun İlk satır veya aşağı burada bir? Burada bu bir mi bahsediyorsun? HEDEF KİTLE: ptr açmayız farklı şeyler ANDI PENG: Peki, buraya bu yüzden Ne ben aslında doing-- ediyorum Sadece buradan gidelim. Bağların Bu tür içinde güzel kavramların hepsi. Yani burada biz int yıldız ptr var. Yani işaretçi int, o nerede biz aslında yaratıyoruz tamsayı işaret eden bir işaretçi. Peki, bu bir tam sayıya işaret gidiyor. Ve biz malloc gidiyoruz, ya da konum vermek, yeterli bellek tahsis arasında bir tamsayıyı depolamak. Bu durumda Yani dört bayt. Sonra bu null-- eşittir eşittir Biz yazdırmak için gidiyoruz null-- eşittir. Ah, bir hata var, çünkü bellek bitti, değil mi? Aksi takdirde geri on, sadece programı söyler Bu bir hata var. Ve sonra bunu yaparsanız bu, o belleğe sahip olsun ne olursa olsun saklamak için gidiyoruz int konuma verir ve işaretçi değeri olarak ayarlayın. Yani aslında gidiyor fiziksel olarak bu değeri silmek ve int getiri elde ne koydu. Ve sonra gidiyoruz girdikleri her türlü baskı. HEDEF KİTLE: Ve bu öbek olacak? ANDI PENG: Bu gidiyor öbek için. HEDEF KİTLE: Ve böylece erişilebilir olacaktır. ANDI PENG: Kesinlikle. Güzel. İyi. HEDEF KİTLE: Yani buna ptr serbest zaman Son adım, biz işaretçi azat edilir ya da biz bloğu boşaltarak, değil mi? ANDI PENG: Evet. Bu yüzden pointer-- azat ettiğin iyi, bellek bloğu boşaltarak. Yani tek yolu erişimi eşitlemek olabilir Bellek işaretçisi olan gereğidir. Eğer işaretçi yoksa, sen Nerede olduğunu gibi, oh, bilmiyorum, sağ? Eğer özgür Yani, aslında konum O bütün bloğu boşaltarak. Ardından bilgisayar oh, bilir, kullanılabilir bir şey, burada yok Ben sadece çöp koyabilirsiniz değerleri tekrar içine tekrar. HEDEF KİTLE: tamsayılar bu konuda biri yapmak So? ANDI PENG: tamsayılar var mı? Özür dilerim. Eğer soru rephrase miyim? HEDEF KİTLE: Eğer özgür sonra ben, demek pointer, olsun tamsayı, hala var olacak? ANDI PENG: Hayır, böyle olmaz. Ya da en azından mevcut olacak senin bellek bilgisayar yok önce onunla ne, ama var Senin için hiçbir şekilde o olsun. İşaretçiyi serbest çünkü. Artık nerede olduğunu bilmiyorum. Evet. Burada hareket edeceğim. Vay be. Yani biz kavramsal bir sürü bitti bellek yönetimi zorluklar ve biz sadece gidiyoruz esasen geçirmek Gidiş 5, 10 dakika sözdizimi şeye o kullanışlı ve çocuklar için yararlı olacaktır, ama çok kavramsal orada hiçbir şey. TAMAM. Yani biz tamamen burada vites değiştiriyoruz. Bellek yönetimi, zor. Göstericiler, zor. Evet. Bu gerçekten zor, gerçekten. Tamamen iyi. Senin parçası olmasının nedeni budur gerçekten zor olacak. Ama gidip yaparsanız Biz konum şeyler yapmak gerekiyordu, yapmak Emin şeyler null şeyler olup olmadığını kontrol etmek emin olun null, boş bellek emin olun, Emin şeyler değildir yapmak sızıntı, iyi olacak. Sen kurulacaktır. Pekala. Yani biz bu taşımak için gidiyoruz yönlendirme tamamen yeni bir konsept. Ve şimdi önce biz ettik ana yol ile etkileşim olmuştur bizim programlar standart giriş yoluyla ve standart çıktı. Sağ? Kullanıcı girişi gibi şeyler ve bilgisayar bize geri terminalde bunu tükürür. Ama diğer vardır Bize etkileşim için yolları ile bilgisayar ile bizim Sadece ben değil programlar Fiziksel yazarak şeyler Ben istendiğinde olduğumda içinde. Ve biz bunu yoludur daha büyük havuç aracılığıyla ve boru sembolü. Bu yüzden de okuyabilir ve Bu kullanarak dosyaları için yazıyorum. Yani biz bunu yoludur büyük havuç yerine, bütün bu yapıyor yazıyor ne olursa olsun sizin yanınızdaki Dosya ayrı bir dosya vardır. Örneğin, eğer Yani merhaba dünya çalıştırmak istedi ve ben çıktı istedim Başka bir dosyaya kaydedilebilir ve sadece bana, ben dışarı yazdırılır Sadece havuç daha büyük yapabilir, çýktý.txt. Yani yapıyor tüm alarak Benim hello.world program Çıktı ne olursa olsun ve bu var output.txt adlı bir dosyaya kaydetme. Davut yaptım yol Öğrencilerin isimleri ile .csv, o siz yapabilirsiniz aynıdır. Ve özellikle bu yararlıdır Burada büyüktür iki havuç daha büyük edemememden Bir çıkış ekleyebilirsiniz işaretler Size demektir dosya, sadece bunun üzerine ekleyebilirsiniz. Sadece eklemeye devam edebilirsiniz Her ek bir şey output.txt Bu yaptığınızı. Veya, daha biniyorlar başlatırsanız karmaşık programları iki büyük havuç yerine, sadece yazdırır hata mesajları dışında. Yani dev bir söylüyorlar hata iletileri miktarı ve okumak istediğiniz Bunlardan ve hepiniz yoluyla kaydırmak zorunda istemiyorum terminal yoluyla, aslında sadece yapabilirsiniz output.txt daha büyük ve kurtarmak için gidiyor senin hataları her Bir dosya bu çýktý.txt adı Eğer geçmesi ve okuyabilirsiniz. HEDEF KİTLE: metin dosyası kaydedilir? ANDI PENG: Aynı kaydedilmişse senin program dizini. Yani sadece geri dönmek ve bunun için bakmak. Ve aynı şey giriş için yapabileceği bir biz aslında alabilir Bazı dosyanın içeriği ve biz girdi olabilir bizim programa söyledi. Yani oldukça komutu yapmak zorunda daha Size fiziksel olarak bir satırı argümanları şeyleri yazmak zorunda her zaman, sen aslında sadece adında bir dosya olabilir Bu input.txt sadece tüm koyar. Ve sonra boru nedeniyle özellikle serin bu bir program çıktısını alabilir ve girdi olarak kullanmak Başka bir program. Yani örneğin, çocuklar 'vigenere içinde, bu kod satırı olduğunu size adamlar belki, belki sen misin çalışan gerçekten doing-- olduğunu bilmiyordum Bu ./generate 1000 boru ./42. Sağ? Bu nedenle tüm yapıyor ki biz eğer sadece adım bu adımda bir göz atın, ./generate, ben olduğum anlamına benim program oluşturmak çalışıyor. Bu onun girişinde 1.000 alıyor. Yani rastgele 1.000 oluşturmak istiyorum sayılar ve ben boruya gidiyorum ki- ya da ben ki- çıkış kullanmak için gidiyorum bulmak denilen benim program için girdi olarak. Ve ben dışarı 42 bulmaya gidiyorum Bu 1,000 ila oluşturduğu rakamlar sayılar. Kod bu çizginin yapar mı herkese duygusu? Bu şekilde biz tasarruf ediyoruz Yani kendimizi adımlar bir ton. Biz üretmek çalıştırmak zorunda değilsiniz, kaydetmek Dosya ve ardından bulmak koydu. Biz bir satırda her şeyi sadece olabilir. Yani, ne olursa olsun çıktısı üretmek bulmak için hemen geri plop. Evet? HEDEF KİTLE: Ve komuta açısından işte ki- satırı argümanları olduğunu Üç komut satırı argümanları? Bu, herhangi bir find--, dört-- oluşturmak var: , 1,000 bulmak ve 42 üretmek? Ya Şeyin olduğunu ANDI PENG: Boru yapar Yani gerçekten Bir komut satırı argümanı olarak saymak derleyici nedeniyle veya Terminal o boruyu bilir, oh, ben önce bakmak gerektiğini biliyoruz çünkü boru benim çıkış var ve ben bakmak gerekir Boru bu benim girdi çünkü. Yani ki- bilir ./generate ve 1000, Bu iki komut daha sonra argümanlar vardır İlk program için. Ve sonra ./find 42 iki komut vardır İkinci program için satırı argümanları. Evet. Herkes bu konuda iyi? Yani sadece gerçek hızlı, olanı yapmak Bu kod üç satır mı? Oldukça basit. Herkes bana söylemek istiyorum İlk satır ne? HEDEF KİTLE: [duyulamaz]. ANDI PENG: sadece-- olarak düşünün daha fazla havuç ne yapıyor? HEDEF KİTLE: Bir şey koyar Bir sonraki hattına. ANDI PENG: Peki nedir Bunun tersi? HEDEF KİTLE: Bir sonraki koyar İlk şeyin içine bir şey. ANDI PENG: Evet. Yani yapıyor tüm sen olduğunu Bir program çalıştıran .hello-- merhaba adlı bir programı çalıştırıyorsunuz. Bunu vermek için gidiyoruz Bir giriş input.txt adı. Sağ? Çünkü o kadar sadece düşünmek fiziksel merhaba girecek. Ve sonra kurtarmak için gidiyoruz Bir dosyada çıktı çýktý.txt çağırdı. Nasıl ikinci satırında ne dersiniz? Bana söylemek istediğin şey İkinci satır yapar? HEDEF KİTLE: [duyulamaz]. ANDI PENG: Üzgünüm. Tekrar söyle. Elliot. HEDEF KİTLE: Bu koyar Yani find içine numaraların listesi. ANDI PENG: Evet. Yani içinde, hatırlıyorum, bulmak Sipariş seni bulmak çalıştırmak için Eğer aradığınız nerede olduğunu bilmek gerekir. Ve bu yapıyor bu yüzden tüm bu burada size veriyor olması önceden ayarlanmış İşlevsiz bir sayılar, o zaman gidiyor bulabilirsiniz 42 sayısı için bu arama. Sonra 15. Unutmayın, siz koştu bu ne zaman kodu test. Şimdi bunu yaptığını anlamak mı? HEDEF KİTLE: Bu koyarak oluyor Talimatlar seti Bir üçe aracılığıyla [duyulamaz] için Üç Şeyin oyunu kazanmak için olsun. ANDI PENG: Evet. HEDEF KİTLE: Bu, bu girişler Programa talimatlar. ANDI PENG: Oldukça fazla. Yani tilde CS50. / Pset3 / 3x3, bütün bu yaptığını biz metni oluşturdu oldu vardı dosyası, tüm Sizin için hazır başlıklar. Oyun oynamak için Ve böylece, sadece-- Biz sadece sizin programa koymak. Yani biz yarattığı bu Yönetim Kurulu ve sonra biz konum Programınızın içine tahta koyarak işte bu koştu ve üç bir kiremit yarattı üçe. Yani yapıyordu hepsi bu. Ve böylece aslında sihirli oldu perde arkasında oluyor Siz olmadıkları Biz programlanan programı. Ama şimdi siz neden anlamak böylece tüm iyi yaptım. Pekala. Yönlendirme çok iken Yani yararlıdır, Cı genel bir mekanizmaya sahip okuma ve yazma için kendi dosyaları. Hiçbir şey kavramsal Ben bu yüzden burada zor sadece aracılığıyla gidecek Gerçekten, gerçekten hızlı. O Bütün bazı ezber olduğunu ve emin adamlar yapıyor sözdizimsel doğru kullanıyor. Biz yapardım yoludur dosyası için bir başvuru oluşturun, biz sonra biz dosyasını açın ve istediğiniz tüm okuma ve yazma yapacağını ve sonra da dosyayı kapatın. Ne zaman bir şey siz akılda tutulması gereken İstediğiniz Çünkü, bunu yaparken o biz kapanış ve dosyaları açılıyor Bu komutların tüm dahildir Standart standard-- I / O kütüphane. Yani sen ne zaman emin olun Eğer included-- ettik Bunu yaparken Standart I / O nokta h included-- #. Hızlı bir şekilde gerçek. Birinci adım, oluşturmak istediğiniz o dosyaya bir başvuru. Ve biz bitti işaretçileri ettik şimdi, sen adamlar bana ne söyleyebilirim kod satırı o yapıyor. Sağ? Bir yaratıyor yapıyor Tüm bu işaretçi tipi dosyasının dosya adını vermiştir. Eğer gidiyor biliyorum çünkü Bir dosyaya işaret ve sen kadar Dosyayı açmak için gidiyorum. Sonra f open-- her şeysin bu dosyayı açmak etmez. Bu dosya adıdır. Ve yapabileceğiniz üç şey var. Sen, okuma yazma veya ekleyebilirsiniz. En genel, siz okurken veya yazarken olacak ya olacaksın çünkü Bir dosya ya da girilmesi bir çıkış. Yani hemen hemen r ve w ikisidir şeyler çoğu kullanıyor olacağız. Yani bu durumda, yaptığım tek şey Dosya adında bir dosyaya bir işaretçi oluşturun. Onu açıyorum ve ben ben değilim reading-- dosya.txt adlandırılan bu dosyayı açmadan ve ben bunu okuyorum. Ben bu noktada yapıyorum hepsi bu. Ve daha sonra bu sadece fonksiyonları vardır Eğer farklı şeyler okuyabilirsiniz hangi veya farklı şeyler yazmak ya da farklı yerlere atlamak nereye bakmak istiyorum. Tüm bunlar online. Tüm bu sadece Google yapabilirsiniz. Gerek yok, onları ezberlemek. Onlar sadece oradayız, kullanımınız için tek kullanımlık Eğer isterseniz bunları kullanmak mümkün. Yani ben sadece okumak istedim her seferinde bir karakter, Ben dosya fgetc yapardı. Ben isteseydim ya bir çizgi okumak için Bir defada metin, ben fgets yapardı. Ve benzeri ve benzeri. Tüm bunlar sadece farklı yapmak şeyleri siz kullanabilirsiniz. Ve son olarak, sonra şeyler okurken veya yazarken bitirdiğinizde, Ben sadece bu dosyayı fclose gidiyorum. Ve bu biri, unutmayın Bunların, lütfen unutmayın Başka dosya bunu ya işe gitmiyor. Daima önce dosyayı açmak okuma veya okuma, Her zaman var Eğer açarsanız kapatın. Bellek ile Aynı şey, değil mi? Hep almak zorunda Bellek ve ücretsiz. Burada her zaman açmak zorunda okumak denemeden önce dosya ve her zaman var açtıktan sonra kapatın. Yani bu online da. Ben sizi meydan gidiyorum tür ki baskılar bir program yazmak Bir dosyaya hello.world. Gerçekten basit. Aslında sadece içerir kod birkaç satır bu sadece daha önce yazılmıştı. Sen onları koymak için gidiyoruz Birlikte ve yazma. Yani bazı önemli şeyler akılda tutulması gereken Senin ise çocuklar bu kullanmaya çalışıyorlar. Bu hepsi çok yararlı ise senin pset bu hafta, fopen Bir dosya işaretçisi yaratmasıdır. Aslında fiziksel dosya değil. Tüm bu işaret ediyor Açmak istediğiniz dosya. Ve aslında sen, ne zaman Diğer fonksiyonlardan herhangi kullanıyorsanız fread veya fwrite gibi ya fgetc ya fgets olduğu Eğer sadece bu çevrede geçen olduğunuzu Bu fonksiyonların tüm işaretçisi. Yani aslında almıyorsun dosya ve işlevleri için kullanmaya, Sadece işaretçi alıyorsun ve bu fonksiyonlara koyarak kullanabilirsiniz, böylece. Ve Kapatmak unutursanız dosya bunu kullandıktan sonra, program bellek sızdırıyor gidiyor. Esasen, bütün bu araçlar kötü şeyler olacak ki ve program olacak düzgün çalışmayabilir. Ve böylece pset üzerinde başlangıcı, bence O explained-- yerde kısa var Nate Valgrind ne explained--. Valgrind All sizin için bir yoldur Eğer bellek sızıntısı değil emin olun. Yani siz yapmak istiyorsanız Emin kısa olduğunu izlemek o kadar açıklıyor, çünkü Gerçekten de ne olur. TAMAM. Yani, gerçekten geçti gerçekten hızlı çünkü ben gerçekten bahsediyoruz almak istiyorum pset siz ayrılmadan önce. Herkes kavramsal sorunuz var mı? Çoğunlukla tüm bu sadece sözdizimi olduğunu Dosyaları okumak veya yazmak için kullanabilirsiniz. Son olarak, herkesin favori. Biz şimdi pset hakkında konuşmak için gidiyoruz. Yani, ellerin gösterisi, nasıl birçok Siz bu hafta spec okudun mu? Oh, bu yarısı. Bu iyi. Yani bu, gerçekten aslında bir olduğunu anlamda gerçekten eğlenceli pset Eğer gibi hissediyorum dedektif sen çünkü Tüm bu gerçekten harika şeyler yapıyor Eğer yapabileceğini bilmediğini ama şimdi gerçekten harika Onları yapabilirsiniz. Ve aslında bir çok şey Siz düşündüğünden daha basit. Yani temel yarısı Bu program, sen vardır kaynak kodunu indirmek için gidiyoruz ya da Dağıtım kodu bizim tarafımızdan yazılmış. Ve bir klasör için gidiyoruz denilen BMP ve başka bir klasör JPG aradı. Senin BMP içinde, sen Üç programları olacak. Bunlardan biri zaten sizin için yazılmıştır. Böylece copy.c bir programdır biz zaten yazdım Sizin için indirmek için gidiyoruz. Yaptığı tüm bir resim girişi olarak almak olduğunu ve çıkış olarak bir kopyasını yapar. Yani bütün bu dosya yapıyor bulunuyor. Ama sizin için ne yapmak istediğinizi whodunit-- Seninle çok kaç çocuklar beşinci sınıftan veya belki-- hatırlıyorum Eğer, belki üçüncü sınıf younger-- ediyoruz Siz gizli mesajlar vardı ve bunun üzerine bir parça kağıt koymak zorunda mesajı çözmek için? Evet? Yani biz yapıyoruz hepsi Bir bilgisayar için bu süre dışında. Yani biz bu güzel görüntüyü verdik. Gibi görünmüyor altında bir şey ama size yardımcı olacak bir ipucudur soruya cevap biz istiyoruz. Esasen ne istediğinizi dosya girişi yapmak için, etrafında bazı şeyler çimdik, belki renkleri ayarlamak, şeyler kayması böylece ne mesajı yoluyla gelebilir olduğunu. Yani içeride gizli piksel ve bilgi Bu doğru kodunuzu yazarsanız çözmek ve size anlatacak Bu ipucu nedir. Ve bu yüzden bazı yararlı ipuçları olarak nasıl Bu yaklaşırken hakkında gitmek istiyorum. Gerçekten tanıtmak istiyorum Dosya I kendinizi G / Ç Biz okuma çünkü dosya ve dosyalara yazma. Sağ? Ve böylece biz ne zaman yapmak bu, bu içerir I / O dosya. Sen gidiyorsun alışmak zorunda ile, nasıl resim dosyalarını açmak mı? Nasıl resim gibi dosyaları için yazıyorsunuz? Nasıl o şeylerin hepsini yapacağız? Bu gerçekten yararlı olacak. İkincisi, nasılsın değiştirmek mümkün olacak Bu resmi temizlemek renkler? Muhtemelen dahil olacak senin piksel ya da RGB değerlerini ayarlayarak yerde esasen orada. Hiçbir doğru yol ve var Senin sürece bu çözümü sürece olabildiğince tür olarak can-- bunu yapmak için bu pikselleri ayarlayın Eğer umurunda şey gibi görünüyor. Yani biz de umurumda hepsi bu. Peki bunu yapmak için birçok yol var. Sadece kadar onunla oynamak Eğer çalışan bir şey olsun. Ve gerçekten olurdu kod sürpriz nasıl birkaç satır Aslında bunu yapmak gerekir. Ben üç gibi konuşuyorum Kod toplam hatları Yazmak gerektiğini sırayla bunu. Eğer kendinizi bulmak Yani eğer 40 yazma, kod 30 satır, muhtemelen yanlış yapıyorsun. Yapmanız gereken her türlü biridir renkleri ile oynamak ve dışarı nasıl çalıştığını görmek. Öyleyse biz biraz kafa Bir sorun daha için. Burada yeniden boyutlandırma var nerede size soruyoruz aşağıdaki amaçlara biz girdi olarak size veriyoruz Bir resim ve boyutlandırma içine bir şey bu görüntü büyük veya küçük bir şey Biz size boyutlarına bağlıdır. Yani derste hatırlıyorum David hızlı bir şekilde nasıl bilgi gezdirirken Bilgisayarlarınız tarafından tespit edilir bu dosyanın bir tür demek için. Yani bir Word dosyası özel sahiptir Bunun önündeki karakterleri Bir Word dosyası var bilgisayarınızı söyle. Bir JPEG ile aynı şey. Bu durumda biz gidiyoruz Size bir JPEG dosyası vermek. Bildiğimiz tek şey JPEG Dosya, doğru bir resim mi? Ama bilgisayar ayıran çok özel yollarla bu. Başında So Herhangi bir JPEG dosyası, sen Bitmap denen sahip oluyor bilgi başlık ve bitmap dosya başlığı. Tüm bu are Farklı veri parçaları Bu, hey, bilgisayarınızı söyle dinleyin, bir JPEG geliyor ve bu boyutlar veya Bu JPEG özellikleri. Yani siz gerçekten bilmek istiyorum hangi bilgilerin içinde saklanır Bu başlıkların ve Bunların boyutu budur. Çalıştırdığınız yaparken Çünkü program sayesinde, istediğiniz gidiyoruz Bu miktarın üzerinde atlayın. Sağ? Eğer umurumda değil, çünkü başlık değiştirmeyle ilgili, Eğer sonra ne değiştirmeyle ilgili önemsiyorum. Sağ? Yani emin adamlar biliyor yapmak ne kadar büyük olan şeylerdir. İkincisi, daha önce Başlamadan resminizi yeniden boyutlandırmak için çalışıyor, Muhtemelen istediğiniz gidiyoruz orijinal boyutlarını kaydedebilirsiniz. Sağ? Ben bu resmi size Çünkü eğer 100 x 100 piksel olduğunu ve ben seni yapmak istiyorum dört kat daha büyük, Eğer var olduğunu biliyorum dörde bu boyutları çarpın. Yani o zaman bir çıkış dosyası istiyorum Örneğin 400 piksel, 400. Yani Sizin çocuklar için gerçekten yararlı orijinal boyutlarını kaydedebilirsiniz. Ve sonrasında da, sonra Eğer yeniden boyutlandırma bittiğinde, Eğer yeni başlıklar yazabilirsiniz yeniden boyutlandırma sonra bu yeni boyutlar. Ve yolu, fiziksel Büyük piksel oluşturabilirsiniz yazabilirsiniz olduğunu Yeni RGB--, RGB hatırlıyorum tüm yeşil, kırmızı için duruyor, ve bir takım dosyasına blue-- piksel. Ve istediğiniz gidiyoruz Neyin farklı miktarlarda Biz dolgu diyoruz. Tüm dolgu isimli alanlardır öncesi ve sonrası resimler Bu, esas olarak Senin- haber ne kadar büyük o resmini söylemek gerekir yukarı alarak. Bu bir sürü için çok soyut Eğer, pset spec okumamış varsa ama olacak zaman için çok yararlı Aslında bu kadar okuyorsun. Oh, evet, mantıklı gibi sen değilsin. Neden bunu yapmak zorunda mı? Mantıklı. Son olarak, bu muhtemelen biridir En sinir bozucu programlar Hiç adil yapamazsın, çünkü bu çalışma ya da değilse söyle. Kurtarmak Bütün bu program, yapıyor ki düzgün çalışması halinde, aniden gerekir 50 görüntüleri kurtarmak olduğunu Bizim sabit diskte kaybedildi. Bu program ile Ve böylece sorun Eğer gerçekten bunu test değil ki Ya iyileşti çünkü Onları ya da yoktu. Ve böylece tür sadece onunla oynamak zorunda ve program ise Düzgün, sen edeceğiz çalışma aniden görüyoruz Eğer ettik dizin dev bir miktar var Şimdi orada resimler. Yani yaklaşım nasıl Bu sorun, biz konum olduğunu ne olduğunu vereceğim Bir card.raw dosya denir. Esas olarak, bu var: sadece bozuk bir dosya tüm resimler depolanan ile Eğer kurtarmak için ihtiyacımız olacak. Yani muhtemelen istediğiniz gidiyoruz giriş için card.raw, veya açık, senin card.raw dosyası ve konum işlemek istediğiniz olacak o JPEG saklamak mümkün. Yani, izleme ve depolanması başlamak istiyorum her JPEG sen bulmak o kadar. Tek tek tüm gitmiyorsun aniden sadece 50 JPEG oluşturun. Saklamak istediğiniz gidiyoruz Eğer açıyoruz kaç iz. Ve sonra istediğiniz sen ne zaman, emin olun Bir buffer-- yazma siz Ben neden bahsettiğimi bilecek Eğer spec-- okumak kez istediğiniz Eğer imzasız kullanmakta olduğunuz emin olun Char tampon. Ve sonra sormak istiyorum Kendinizi sorusu, Bir kaç bayt CF-- bir kart dosyasında bulunmaktadır? Yani gidiyoruz kaç var senin tampona okumak istiyorum. Sen emin olmak için gidiyoruz İki hizalama o zaman, çünkü rastgele bellek dışarı sızması olmaz. Tam olarak kaç biliyor byte İhtiyacınız ve kaç Bunları yapmak istediğiniz bayt. Ve sonunda, istediğiniz adında bir işlevi kullanın sprint-- s baskı özel dosyası oluşturmak için F-- bulduğunuz her yeni JPEG için isimler. Oluşturduğunuz Yani ve Kartınızın içinde JPEG bulmak, istediğiniz gidiyoruz bunları saklamak ve onlara isim. Sağ? Ve böylece gidiyoruz Bu işlevi kullanmak istiyorum adları oluşturmak için bu senin JPEG tüm saklayabilirsiniz. Ve son olarak, kapatmak için unutma Her JPEG bitirdiniz sonra. Sen çünkü ne yapacak sen olduğunu Muhtemelen sahip oluyor Bir döngü çeşit olduğunu senin JPEG tüm dolaşır. Bir JPEG yazmak için gidiyoruz Onu bulmak gibi yeniden adlandırın. Ama bitirdiniz sonra her JPEG, Başlamadan böylece kapatmak gerekir üzerinde ve bir sonraki resme geçmek. Ve böylece bu şey o biz yapmak gibi gerçekten eğlenceli, Çünkü bu tür bir garip sorun set aynı zamanda tatmin edici bir sorun, weirdly setidir resimlerin tüm bu biz düzgün kurtarmak eğer sizin için var, tüm resimler resimleri vardır harika öğretim elemanı, hem Harvard, en burada-- ve burada Yale'de. Ve sen ne olursa Bütün bu resimleri kurtarmak ve personel tanımlamak Bu kartların üyeleri, ve eğer bize sahip selfies almak Eğer kampüs çevresinde bizi bulmak Her fotoğraf bize göndermeniz için, biz olacak Dropbox alan bir gigabayt verir. Yani burada matematik yapalım. 50 fotoğraf varsa ve 50 öğretim üyesi, Tüm 50 arasında bulmak için ne Bize, yani Dropbox 50 gigabayt var temelde, biz sizi vermek olacak. Yani bazı ekstra eklenen teşvikler Siz olmasaydı sadece kayıp görüntüleri kurtarma umurumda. Bazı eklenen teşvikler de var. Bu eğlenceli bir sorun kümesi var. Gerçekten öyle. Bu tür sinir bozucu ama sonra Eğer fark ettiklerinde gerçekten eğlenceli olur vay, ben şimdi çalışıyor ve var Bu resimlerin hepsi var ben sadece kendim yarattım. Pset üzerinde herhangi bir sorunuz var mı? Herkes için kim zaten başladı, sorularınız varsa, Birkaç dakika sonra burada olacağım bölüm benimle konuşmak istiyorum. Aferin, çocuklar. Üzgünüm, ben bilgi size çocuklar dökülüyor. Göstericiler, gerçekten, gerçekten zorlu ve sinir bozucu. Ve ben gerçekten memnunum Siz benimle kaldı. Biz derinlemesine daha fazla konuşacağız Gelecek hafta Biz hash tabloları yapmaya başlayabilirsiniz olarak ve onları dahil daha fazla işlevleri. Evet. Kimse herhangi varsa Yani sorular, etrafta olacağım. Geliyor ve daha fazla sürebilir için teşekkürler şeker daha fazla şeker var, çünkü. Güzel.