HIZLARIA 1: Dezagun idazteko programa bat da izenak eman erabiltzaileari eta galderak hiru ikasle-etxeak. Orain, izenak eta etxe horiek gordetzeko erabili izan dugu, zer, sei aldagai. Izenak hiru kateak, eta beste bat etxeak egiteko hiru kate, baina dagoeneko badakigu garbitu ahal izango dugu array erabiliz ordez kodea duten, esate baterako tamaina 3 array bat egiteko hiru izen eta array beste tamaina 3 etxeak egiteko. Baina bihurtzen da hau garbitu ahal izango dugu gehiago oraindik, eta benetan mantendu dutenei izenak eta etxe batera, horrela bat Ikaslearen izena eta bere etxea nolabait kapsulatzen dira, beraz hitz egiten dute, aldagai bera sartu. Horretarako, ordea, nahi aldarrikatu behar dugu Gure datu-mota egin, gure C mota egin, duten C egileek ez dute zertan Duela urte pentsatzea. Hori egiteko gako-erabili ahal izango dugu typedef, batera beste keyword egiturari. Ikus dezagun begirada bat. Structs.h barruan, dagoeneko dut ahaztuak hasitako CS50 liburutegia barne. Hurrengo naiz typedef struct idazten joan, eta, ondoren, kizkur giltza bat. Egitura, barruan, noa joan zehaztu ikasle bat jarriko dute bat izena katea deitu, eta beste bat etxea izeneko kate. Orduan itxi nire giltza kizkur noa, eta zehazten duten izena, datu-mota berri honek ikasleari izango da. Bestela esanda, sintaxi honen bidez daukat Datu nire mota berri bat izendatu existitzen ez duela une bat, eta datu mota honen barruan bi datuak dira eremuak edo datuak kideak, inork izena deitzen, etxea izeneko bat, biak ere mota katea dira. Dezagun mota hau erabili en orain benetako programa batean. Structs0.c eta, era berean, ez dut ahaztuak Hasteko nire burua dagoeneko batzuk boilerplate kodea, eta naiz orain Datu hori erabiltzeko joan Ikasle idatzi, honela. Naiz lehen bat aldarrikatu joan mota ikaslearen array, dut egingo deituko array ikasleei - plural - eta zehaztu egingo dut, bere tamaina izango da hiru, hain zuzen, aldez aurretik abisatu, balioa da konstante ikasle - hiriburuetan guztietan - ditudan deklaratu hemen, fitxategia lehenago. Dezagun hiru horiek baino gehiago batetik bestera orain ikasleak, eta galdetuko erabiltzaileari beren izenak eta etxeak. int i get 0, txikiagoa da i konstante hori baino, i + +. Eta, orain, honen gorputza barrutik begizta, naiz zerbait inprimatu noa ikaslearen izena bezala. Naiz gero benetan gertatzen ari dela ikaslearen izena zehaztuz ikasleek parentesi i. Beste era batera esanda, i-garren ikaslearen nahi dut ikasleen izeneko array, baina orain Behar duten i-garren ikaslearen at lortu nahi dut izendatzeko, eta hori egin ahal izateko, erabili noa dute. operadorea, ordena batean lortu eremua egitura, barruan espezifikoak. Beraz zehaztu dut ikasle parentesi i. Izen bueltan GetString balioa lortzen (). Bien bitartean, nik inprimatu noa antzeko zerbait, ikaslearen esanez etxea, eta orain ez dut zehaztu joan duen i-garren ikasle etxe eremua bueltan balioa lortu beharko dei bat GetString (). Orain egin dezagun zerbait hiru hauekin utzi ikasleen izenak eta etxeak, zerbait inprimatzeko bezalako sinple esaldi batean daudelarik bakoitzean. int i get 0, berriro baino gutxiago da i ikasleak, i + +, printf "% s% s dago. backslash n ", eta orain utzi plug in me bi eremu horiek balioetan, ikasleek parentesi i. izena, koma, ikasleek parentesi i. etxea, itxi paren, puntu eta koma. Eta orain gauza bat gehiago egin behar dut. Fitxategi honen behealdean, behar dut esleitu zen memoria libratzeko GetSring (), egindako eszenak atzean eta horrek jakina malloc deiak, ordena esleitu memoria kateak eman Erabiltzaile motak. Baina hau erraza da. int i get 0, baino txikiagoa da i ikasleak, i + +, eta gorputzaren barruan hau loop, ez dut besterik gabe joan free ikasle parentesi i. izena ematen, eta doako ikasle parentesi i. etxea. Orain, nik argi eta garbi erabiltzen ditugun hiru loops programa honetan, benetan dut dute bakar bat erabil liteke, baina hau da, besterik manifestazio mesedetan, beraz, dugu hiru desberdin adierazi daiteke zer egiten ari garen urratsak. Lehen izena eta etxe bat ari gara ikasle bakoitzari, eta gero gara inprimatzeko izena eta etxea hiru ikasle bakoitzari, eta orduan ari gara memoria libratzeko joan ikasle bakoitzak erabiltzen. Baina ziur asko konbinatu honetan dudan genezake Bat loop handiagoak sartu. Utzi gorde en orain, konpilatu, eta programa hau exekutatu. egin structs 0. / structs 0, ikaslearen izendatzeko, dezagun ematen David, bizi egingo zuen Mather House, ikaslearen izen-abizenak, dezagun esan Lauren, Leverett in dut bizitzeko Etxea, ikaslearen izena, Rob, berak egingo Kirkland House bizi. Eta, hain zuzen, David Mather da, Lauren Leverett dago, eta Rob Kirkland dago.