జాసన్ HIRSCHHORN: స్వాగతం A5 అందరూ. మేము, ముందుకు మాకు యొక్క అద్భుతమైన వారం చాలా కొత్త ఉన్నాయి ఎందుకంటే ఈ గదిలో ఎదుర్కొంటుంది. ఇది అద్భుతమైన ఉంది. మీరు చాలా ప్రమాదంలో ఇక్కడ ఉన్నారు, ఇది కూడా బాగా ఉంది. కాబట్టి ఆశాజనక మీరు మాతో ఉంటాం. ఈ వారం మేము ఖర్చు చేయబోతున్నామని భాగం ఎక్కువ క్విజ్ సిద్ధమవుతున్న. మా ఎజెండా ప్రకారం కాబట్టి, మాట్లాడు చూడాలని తరగతి కోసం వనరులను గురించి ఒక బిట్, కానీ క్విజ్ కోసం, మరియు తరువాత మళ్ళీ, తరగతి మాట్లాడుతూ భారీ ఖర్చు ప్రశ్నలపై. మేము సమాధానం పూర్తి చేసిన తర్వాత మీ ప్రశ్నలు, లేదా ఉంటే మీ ప్రశ్నలు సహజంగా నేను, కొన్ని కోడింగ్ మాకు దారి మిడ్టర్మలు నుండి నమూనా సమస్యలు మేము విభాగంలో Live కోడ్ చేసే గత కలిసి కొన్ని ఇతర అప్ తీసుకుని ఆ కవర్ మంచి విషయాలు. కాబట్టి మొదటి, మేము కోసం ద్వారా మారారు వంటి గుర్తు వారాల గత జంట అబ్బాయిలు, వనరుల ఒక టన్ను ఉన్నాయి ఈ కోర్సు అందుబాటులో. వాటిని చాలా చాలా సహాయకారిగా ఉంటుంది మీకు మీరు కొనసాగుతుంది వంటి , క్విజ్ 0 కోసం అధ్యయనం ఎందుకంటే ఇది మంగళవారం మధ్యాహ్నం ఉంది. కాబట్టి మీరు అన్ని ఉన్నాయి కొంతసేపు అధ్యయనం. లెక్చర్ నోట్స్ మరియు మూలం ఉన్నాయి కోడ్ మీరు అని ఖచ్చితంగా తనిఖీ. లఘు చిత్రాలు చూడటానికి. Study.cs50.net తనిఖీ. ఆపై, ఒక సంఖ్య, క్రింద జాబితా ఇతర వనరుల. మళ్ళీ, క్విజ్ 0 రేపు ఉంటుంది 1 గంటల వద్ద. మీరు ఇంకా పూర్తి చెయ్యకపోతే, తనిఖీ న గురించి క్విజ్ 0 పత్రం గుర్తించడానికి కోర్సు యొక్క హోమ్ మీరు క్విజ్ వేస్తున్నాము పేరు. క్విజ్ 1:10 మొదలవుతుంది మరియు 70 నిమిషాల తరువాత ముగుస్తుంది. మీరు 1:10 తర్వాత చూపించే చేస్తే, మీరు అనేక తక్కువ నిమిషాల పొందగలిగిన 70 క్విజ్ కాకుండా. కాబట్టి మీరు బాబూరావు నిర్ధారించుకోండి. మీరు పొడిగింపు విద్యార్థి ఉన్నాము లేదా కలిగి ఉంటే కొన్ని ఇతర పరీక్ష పరిగణనలు, ఇది 1 గంటల రేపు వద్ద కాదు. కానీ మళ్ళీ, గురించి క్విజ్ 0 తనిఖీ మీరు ఉన్నప్పుడు తెలుసు చేయడానికి నమోదు మీరు క్విజ్ వేస్తున్నాము. నేను ఇక్కడ 75 నిమిషాల రాశారు. నేను 70, కుడి కాదు అనుకుంటున్నాను. ఇది ఒక వారం 0 నుండి అన్ని పదార్థం వర్తిస్తుంది బుధవారం గత వారం యొక్క ఉపన్యాసం. మరియు తిరిగి, ఈ క్విజ్ కోసం, ఆ ప్రకారం పత్రం, మీరు ఒక ద్విపార్శ్వ మరియు 8 మీరు పొందుతారు కాగితం 11 షీట్ ద్వారా 1/2 క్విజ్ సమయంలో గమనికలు ఉపయోగించడానికి. చాలా మంది, చాలా మంది, ఉంటే కాదు దొరకలేదు ఏకైక ఉపయోగకరమైన క్విజ్ కోసం అధ్యయనం ఉంది ఒక అధ్యయనం షీట్, ఒక తయారు స్వంతంగా ఒక ఇతరుడు,. కాబట్టి గత వాటిని చూస్తే మీరు గత వాటిని చూసిన. స్నేహితులు చూడటానికి చేరుకునేందుకు ఏమి వారు వారిది న పెట్టటం చేస్తున్నారు. కానీ చేతులు డౌన్, మీరు చెయ్యగలరు ఉత్తమ మార్గం అధ్యయనం ప్రతిదీ ద్వారా వెళ్ళడానికి ఉంది మరియు ఏమి ఉండాలి లేదా ఉండాలి చెక్కకొయ్య డౌన్ ఆ షీట్లో చెందినది కాదు కాగితం, కేవలం నిజంగా ఎందుకంటే మీరు నిర్ధారించుకోండి కోసం ఉపయోగకరమైన మీరు ప్రతిదీ ద్వారా చేస్తున్నాడనే ఇది కొన్ని పరిచయాన్ని కలిగి. చాలా మంది, మేము కనుగొనేందుకు అయినప్పటికీ వారు పేపర్ షీట్ కుడి కూర్చొని ఉన్నారు క్విజ్ లో వాటిని పక్కన, మారిపోవు దానికి, మళ్ళీ, చాలా, ఎందుకంటే సమాచారం ద్వారా వెళ్లి ప్రక్రియలో వాటిని తెలుసుకోవడానికి సహాయపడింది. ఎవరైనా ఏవైనా ప్రశ్నలు ఉందా క్విజ్ 0 గురించి? అందరూ ఉంది - నేను చేతులు ఒక షో చేయడానికి వెళ్ళడం లేదు. ఫరవాలేదు. నేను అడుగు వెళుతున్నాను అధ్యయనం ప్రారంభించారు. కానీ నేను మీరు అనుకున్న లేదు అన్ని మీ చేతులు పెంచడానికి కాదు. నేను అందువల్ల వంటి - అవును, Avi, ముందుకు. AVI: ఒక ఉపయోగకరమైన విషయం ఉంటుంది ఒక పేజర్ ధరించుట? STUDENT: మీరు వరకు ఉంది. జాసన్ HIRSCHHORN: మీరు పొందండి మీ తీర్పు ఉపయోగించడానికి. ఒక పేజర్ చాలు ఉపయోగకరమైన విషయాలు, మీరు పెద్ద O గురించి గందరగోళం ఉంటే శోధనలు వివిధ రకాల runtime ఆటపై, ఒక లో ఆ ఉంచారు సులభ దండి చార్ట్. ఆ విధంగా, మీరు అడిగితే ఉంటే క్విజ్, మీరు ప్రయత్నించండి మరియు సంఖ్య అవసరం లేదు దాన్ని లేదా పని ద్వారా కారణం. మీరు దాని కాపీ చేయవచ్చు. మీరు క్విజ్ గత, చాలా చూడండి సమయం, సమయం ప్రశ్నలు అమలు. కాబట్టి ఒక మంచి ఉదాహరణగా ఉంటుంది మీ ఒక పేజర్ చాలు విషయం. మీరు అయితే, న ఉంచాలి ఇతర మంచి విషయాలు ప్రకటించాలని ఎలా గురించి గందరగోళం ఒక ఫంక్షన్ లేదా వివిధ భాగాలు ఫంక్షన్ ప్రకటన వ్రాయండి, ఉన్నాయి అక్కడ పై, ఒక సాధారణ వెర్షన్ ఆపై ఉండవచ్చు ఒక ఉదాహరణ. మీరు గమనికలు గురించి అయోమయంలో ఉంటే, గమనికలు పని ఉంది ఎలా ఒక రేఖాచిత్రం బహుశా నిజంగా ఉపయోగపడిందా. మీరు సూత్రం, ఒక గురించి అయోమయంలో ఉంటే అక్కడ పునరావృత ఫంక్షన్ నమూనా నిజంగా ఉపయోగపడిందా రుజువు కాలేదు. మీరు కొన్ని ఆలోచనలు ఇవ్వాలని లేదు? AVI: మీరు అర్థం చేసుకోవాలి వంటి మొత్తం కంపైల్ ప్రక్రియ, ఎలా పనిచేస్తుంది అని? జాసన్ HIRSCHHORN: అంతా ఆ కవర్ చేయబడింది అని క్విజ్ లో చూపబడతాయి. ప్రశ్నలు - కానీ మళ్ళీ, కొన్ని విషయాలు ఉంటుంది ఇతరుల కంటే భారీగా. కొన్ని విషయాలు మళ్ళీ ఇచ్చారు మళ్ళీ తరగతి, లో ఉపన్యాసం, మరియు విభాగం. ఇతర విషయాలు కలిగి తరచుగా ఆలోచన. మేము # ఉన్నాయి మరియు చాలా మాట్లాడారు చేసిన -L ఏదో మరియు ఆ అర్థం సంగ్రహం విధానంలో. మేము, వేళ్ళాడతాయి, GDB గురించి చాలా మాట్లాడారు చేసిన మేము ఉపయోగించే వివిధ జెండాలు ఉన్నప్పుడు ఏదో కంపైల్, మరియు make15, ఉదాహరణకు, నిజంగా అంటే మరియు నిజంగా చేస్తుంది. మేము గురించి చాలా మాట్లాడను చేశారు లో ప్రతి అడుగు సంగ్రహం విధానంలో. మేము ఇంకా దాని గురించి మాట్లాడారు చేసిన. కాబట్టి ఇప్పటికీ మీరు ఏదో తెలిసిన ఉండాలి. కానీ మళ్ళీ, మేము మాత్రం లేదు - తరగతి తరచుగా వచ్చిన విషయాలు మరింత ఆలోచన అవకాశం తరచుగా మరియు ఎక్కువగా ఉంటుంది క్విజ్ లో బరువు. కూల్. క్విజ్ 0 గురించి ఏదైనా ఇతర ప్రశ్నలు? OK, నేను జాబితా కలిసి బోర్డు విషయాలు. నేను సిలబస్ సాగింది. నేను పునఃపరిశీలించి విభాగం సాగింది ఆలోచన గత రాత్రి మరియు ఆ స్లయిడ్లను విషయాల యొక్క అసంపూర్ణంగా జాబితాను మేము CS50 లో ఇప్పటివరకు కవర్ చేసిన మరియు ఆ వాటిని క్విజ్ లో కనిపిస్తుంది. నేను ద్వారా వెళ్ళడానికి వెళ్ళడం లేదు ఈ ప్రతి ఒక. ఆ మరింత పడుతుందని మేము ఇప్పుడు కంటే సమయం. కానీ నేను ఆశాజనక జాగ్ ఇక్కడ ఈ ఏర్పాటు విషయాలు పాత్రల్లోకి మెమరీ మారవచ్చు లేదా మీరు వంటి తెలిసిన కాకపోవచ్చు. నేను ఎక్కువ ఖర్చు ఇష్టం గురించి మీ ప్రశ్నలకు విభాగం ఈ విషయాలు, అంశాలు ఇక్కడ పొందుపరచబడలేదు. మేము నకిలీ కోడ్ వ్రాయగలవు. మేము నిజమైన కోడ్ వ్రాయగలవు నిర్ధారించడానికి మీరు ఆ - నేను మీ ప్రశ్నకు సమాధానం మరియు సహాయపడుతుంది అందరూ ప్రాథమికంగా అర్థం ఒక ఈ విషయాలు చాలా మీకు రాదు వెళ్ళి సిద్ధం మరియు సౌకర్యవంతమైన క్విజ్ రేపు. కాబట్టి జాబితా పై చదవండి. మీరు ఆశాజనక విభాగం వచ్చారు కొన్ని ప్రశ్నలతో అలాగే. మీరు సిద్ధమైనప్పుడు, మీ చేతి పెంచుతాయి మరియు మేము ప్రారంభించడానికి ఉంటుంది. గుర్తుంచుకోండి, ప్రశ్నలు మీరు, ఏ స్టుపిడ్ ప్రశ్నలు ఉన్నాయి. మేము చాలా విన్న చేసిన. మరియు మీరు ప్రశ్నలు, నేను అనుకుంటున్నాను , అనేక ఇతర ప్రజలు రెండు పందెం ఇక్కడ కూర్చొని మరియు చూడటం ఆన్లైన్ అలాగే ఉన్నాయి. కాబట్టి మీరు గమనిస్తుంటాం ప్రశ్నలను అడగడం ద్వారా. మార్కస్. MARCUS: స్టాక్ మరియు మధ్య నిండుగా, ఒక ముందు కేటాయించిన ఉంది నిర్వచించారు చేసే మెమరీ శాతం స్టాకు కోసం లేదా కుప్ప కోసం ఉంది? లేదా ఎలా పని, చేస్తుంది? జాసన్ HIRSCHHORN: గ్రేట్ ప్రశ్న. నేను కొద్దిగా ట్రేస్ వెనుకకు వెళుతున్న. అందరూ చేస్తుంది - ఇక్కడ నిజాయితీ ఉండండి. నేను పెంచడానికి అడుగుతూ నేను తెలుసు మీ మీ తోటివారి ముందు చేతి. కానీ బాధపడేవారికి ప్రజలు ఉన్నాయి స్టాక్ మరియు కుప్ప ఇబ్బంది మరియు ఆ పై వెళ్లాలని కోరుకుంటారు మరియు ఆ అర్థం ఏమిటి? మీ చేతి ఉంటే రైజ్ - OK. ధన్యవాదాలు. కాబట్టి మేము స్టాక్ వెళ్ళి చేస్తున్నాడనే కుప్ప నిజంగా త్వరగా ఆపై మీ ప్రశ్నకు సమాధానం తరలి. మేము ప్రాతినిధ్యం ఒక బాక్స్ డ్రా అయితే మీ కంప్యూటర్లో మెమరీ, కొన్ని ఏవి ఈ బాక్స్ లో వెళ్ళి విషయాలను? ప్రధాన. ఒక ప్రధాన విధి. పేరు ప్రధాన గడిచిపోయింది? STUDENT: [వినబడని]. జాసన్ HIRSCHHORN: కాబట్టి మేము చేస్తాము డౌన్ ఇక్కడ ప్రధాన చాలు. ఏమి ఈ బాక్స్ లో వెళ్తాడు? STUDENT: మీరు కాల్ విధులు. జాసన్ HIRSCHHORN: విధులు మేము కాల్. మరియు ఎక్కడ గో? STUDENT: స్టాక్ లో. జాసన్ HIRSCHHORN: వారు స్టాక్ లో వెళ్ళండి. కాబట్టి మేము ఈ కాల్ చూడాలని డౌన్ ఇక్కడ విషయం స్టాక్. మరియు టాప్, మేము కుప్ప కలిగి. కాబట్టి మెమరీ ఈ వంటి ఒక బాక్స్ కాదు. అయితే అందంగా పోలి ఉంటుంది. ఇది పైగా బాక్సులను చాలా చేస్తాడు మరియు పైగా, బట్టి ఎంత పెద్ద మీ కంప్యూటర్ లేదా మీ మెమరీ ఎలా పెద్దది. కోట్-unquote "దిగువ" వద్ద స్టాక్ ఉంది. మరియు బహుళ విషయాలు ఉన్నాయి స్టాక్ సాగుతుంది. మరియు ఆ విధులు ఆధారపడి మీరు మీ కోడ్ లో కలిగి. మీరు ఎల్లప్పుడూ లో ఒక ఫంక్షన్ కలిగి మీ కోడ్ ప్రధాన అనే, కాబట్టి ఒక ఎల్లప్పుడూ ఉంది డౌన్ ఇక్కడ విభాగం ప్రధాన అంకితం స్టేక్. స్టాక్ లో ఈ విభాగాలు స్టాక్ ఫ్రేములు అంటారు. మీరు మరొక కాల్ చేసినప్పుడు, ప్రధాన చెప్పటానికి ఒక బైనరీ శోధన ఫంక్షన్, మేము స్టాక్ మరో ఫ్రేమ్ చాలు. ముఖ్యంగా మేము వెళ్తున్నారు న మెమరీ భాగం దానం మా బైనరీ శోధన యొక్క స్థానిక నిల్వ కంప్యూటర్లో వేరియబుల్స్ మరియు బైనరీ అమలు శోధన కోడ్. కాబట్టి మేము బైనరీ శోధన కాల్. మెమొరీ ఈ భాగం లో, మేము చేయబోతున్నామని దాని స్థానిక వేరియబుల్స్ నిల్వ. మేము దాని printf కాల్స్ నిల్వ చూడాలని. ఏది, విధి అక్కడే నిల్వ అన్నారు. బైనరీ శోధన అమలు అన్నారు. ఇది అమలు పూర్తి అన్నారు. సి లో పదం ఏమిటి సూచిస్తుంది ఒక ఫంక్షన్ తప్పక దాని అమలు పూర్తి? STUDENT: చూపించు. జాసన్ HIRSCHHORN: తిరిగి. కాబట్టి మీరు తిరిగి ప్రకటన చేసినప్పుడు, ఫంక్షన్ ముగుస్తుంది ఆ తగిలినప్పుడు. కాబట్టి బైనరీ శోధన తిరిగి హిట్. మెమరీ ఈ భాగం తప్పనిసరిగా రెడీ అప్ విముక్తి. మరియు ప్రధాన తిరిగి అమలు వెళతారు. , కాల్ ఉంది ఎక్కడ ఉన్నా ప్రధాన విరామం బైనరీ శోధన, కొన్ని తిరిగి విలువ పొందడానికి, మరియు ఉరి కొనసాగుతుంది. ఈ స్టాక్ ఫ్రేమ్ తీసివేయబడుతుంది. మేము ఒక పునరావృత ఫంక్షన్, కాల్ ఇది స్వయంగా కాల్స్ ఒక విధి మరియు పైగా, మేము పొందుటకు - మేము చెప్పే పునరావృతంగా బైనరీ శోధన చేశాడు. మేము, బైనరీ శోధన వెర్షన్ పొందండి ఉండవచ్చు బైనరీ శోధన రెండు, బైనరీ శోధన మూడు, బైనరీ శోధన నాలుగు, బైనరీ శోధన ఐదు. మరియు ఈ చివరి బైనరీ శోధన ఐదు బేస్ కేసు, మరియు స్టాక్ హిట్ ఫ్రేములు తిరిగి వెళ్లి ముగింపు చేస్తుంది మేము ప్రధాన తిరిగి పొందడానికి వరకు. మేము ఒక బిట్ లో సూత్రం పైగా వెళ్ళవచ్చు. మీరు అయితే ఈ, చెప్పబడినది , ఒక సమయంలో బహుళ విధులను కాల్ బహుళ స్టాక్ అక్కడ ఉంటాం స్టాక్ ఫ్రేములు. నిండుగా, మరోవైపు, అప్ ఇక్కడ, విధులు కోసం కాదు, కాదు స్థానిక వేరియబుల్స్ కోసం. ఇది సాహసోపేతంగా కేటాయించిన కోసం ఉంది వేరియబుల్స్. కాబట్టి ఈ ఉండాలనే వేరియబుల్స్ ఉన్నాయి ప్రధాన లేదా ఒక గాని initialized ప్రధాన కాల్స్ పని. ఎక్కడైనా మీ కోడ్ లో, వారు initialized చేయవచ్చు. మరియు ఒక డైనమిక్ ప్రారంభించడం కేటాయించిన వేరియబుల్. మేము సి లో ఏమి ఫంక్షన్ ఉపయోగించగలను? STUDENT: Malloc. జాసన్ HIRSCHHORN: Malloc. మీరు malloc కాల్. ఇలాగ స్పేస్ పొందడానికి. మరియు మెమరీ ఆ స్పేస్ కుప్ప ఉంది. మరియు మెమరీ ఆ స్పేస్ ఉంటాయి మీరు కొంత కాల్ వరకు. కాబట్టి సాహసోపేతంగా కేటాయించిన వేరియబుల్స్ లో కుప్ప మీరు కాలం కోసం ఉనికిలో ఉంటుంది వాటిని ఉన్నాయి కావలసిన, మరియు రాబట్టుకున్నారు స్పష్టంగా మీరు వరకు దూరంగా వెళ్ళి దూరంగా వెళ్ళి తెలపండి. మీరు ఒక ఫంక్షన్ వాటిని సృష్టించవచ్చు. ఆ ఫంక్షన్ యొక్క స్టాక్ ఫ్రేమ్ తీసివేయబడుతుంది. కానీ ఆ వేరియబుల్ ఇప్పటికీ ఉనికిలో ఉంటుంది కుప్ప లో విముక్తి వరకు, సమర్థవంతంగా అని ఆ ఫంక్షన్ ద్వారా బైనరీ శోధన లేదా సంసార. కాబట్టి ఆ కుప్ప వేరియబుల్స్ అక్కడే కాలం మీకు కావలసిన కోసం వాటిని అక్కడే. మరియు వారు ఇక్కడ చాలు. తరువాత ఒక ఉన్నాయి ఉంచే. వారు పూరించిన విధానం ఉంచేందుకు, మరియు వారు మీరు ఉచిత కాల్ వరకు అక్కడే. మరియు ముఖ్యంగా, కుప్ప మరియు స్టాక్, , మార్కస్ యొక్క ప్రశ్నకు పొందడానికి పరస్పర పెరుగుతాయి. మరొక లోకి అమలు చేస్తే, మీరు చేసిన అన్ని మెమరీ అప్ ఉపయోగిస్తారు మీ కంప్యూటర్ మరియు మీ ప్రోగ్రామ్ విడిచి ఉంటుంది మీరు ఏ మెమరీ లేదు ఎందుకంటే ఉపయోగించడానికి వదిలి. వాటి మధ్య లో, ఉన్నాయి సమర్థవంతంగా ఇతర విషయాలు. కానీ ఈ కోర్సు యొక్క పరిధిని, మీరు కోసం ఆ గురించి ఆందోళన అవసరం లేదు. కాబట్టి ఆ సమాధానం మీ ప్రశ్నకు. దాని గురించి ఆందోళన లేదు. కానీ అందరికీ బాధేసింది. మీరు తెలుసుకోవాలి అన్ని ఉంది కుప్ప మరియు స్టాక్ రెడీ - ఒక దిగువన మొదలవుతుంది. స్టాక్ చేస్తుంది. కుప్ప అప్ ఉంది. మరొక దగ్గరగా పెరగనుంది. వారు టచ్ ఉంటే, ఆ సమస్య ఉంది. ఇలాగ అయిపోయింది. కానీ, తెలుసుకోవడం పాటు పేరు వారు, ఏ రెండు నిల్వ ఉంటాయి స్టాక్ మరియు కుప్ప. కర్టిస్. CURTIS: వారు ఢీకొన్నప్పుడు ఒక స్టాక్ ఓవర్ఫ్లో ఉంది? జాసన్ HIRSCHHORN: వారు ఢీకొన్నప్పుడు ఒక స్టాక్ ఓవర్ఫ్లో కాదు. ఒక స్టాక్ ఓవర్ఫ్లో వేరే ప్రాంతం మీరు అనుకుంటే మేము వెళ్ళే. OK, మేము ఒక బిట్ లో ఆ వచ్చి చేస్తాము. STUDENT: అవుదామని ఏమిటి వారు ప్రతి ఇతర కొట్టాడు, స్టాక్ మరియు కుప్ప? జాసన్ HIRSCHHORN: ఇప్పుడు కోసం, గురించి ఆందోళన లేదు. కేవలం తెలుసు - నేను ఆ ప్రశ్న సమాధానం తరగతి తర్వాత. వారు ప్రతి ఇతర లోకి అమలు చేస్తే, మీరు అయిపోయింది ఎక్కువ ఉంది మెమరీ, ఎందుకంటే అక్కడ స్థలం. STUDENT: క్షమించండి, ఒక seg తప్పు ఏమిటి? జాసన్ HIRSCHHORN: ఒక విభాగంలో తప్పు కోసం పిలువబడుతుంది - seg తప్పు అని ఎందుకు అది ఆధారపడి ఉంటుంది. కొన్నిసార్లు, మీ స్టాక్ ఓవర్ఫ్లో, ఇది చేస్తాము seg లోపం వంటి తప్పు చెప్పడానికి. STUDENT: ఏ dereferencing గురించి ఒక శూన్య వేరియబుల్? ఒక seg తప్పు? జాసన్ HIRSCHHORN: Dereferencing ఒక నల్ పాయింటర్ - OK, కాబట్టి మీరు ఒక పాయింటర్ ఉంటే శూన్యం సమానంగా సెట్, గమనికలు, రీకాల్, స్టోర్ మెమరీ చిరునామాలు వారి విలువలు వంటి. మరియు ఒక నల్ పాయింటర్ తప్పనిసరిగా ఉంది 0 నిల్వ, 0 వ ఆ వేరియబుల్ కోసం. కాబట్టి 0x, 0, 0, 0, 0, మొదలైన. కాదు మెమరీలో ఆ 0-th చిరునామా మా చిత్రంలో, ఆ అప్ ఉంది ఎక్కడో, ఆ రిజర్వు కంప్యూటర్ కోసం. మేము అది తాకే అనుమతి లేదు. కాబట్టి మీ ప్రోగ్రామ్ను అమలు ఎప్పుడు, ఉంటే ఏదో మెమరీ వెళ్ళడానికి ప్రయత్నిస్తున్నారు చిరునామా 0, ఇది తెలుసు ఒక ఖాళీ విలువ. ఇది ఏమీ ఉండాలి తెలుసు. కాబట్టి మీరు అక్కడ ఏదో ప్రయత్నించండి మరియు ఉపయోగిస్తే మరియు వంటి ఉన్నాయి ఏదో చికిత్స లేదా ఆ నగర వెళ్ళడానికి ప్రయత్నిస్తున్న, మీరు ఒక seg తప్పు లేదా లోపం అన్నారు. మీ ప్రశ్నకు సమాధానం ఉందా? ఇప్పుడు మేము తిరిగి వెళ్తారో ఓవర్ఫ్లో పేర్చడాన్ని. మీరు అబ్బాయిలు కలిగి స్టాక్ ఉన్న విషయాలు, ముందు, లో - యొక్క సన్నిహిత డ్రా తెలియజేయండి ఒక స్టాక్ ఫ్రేమ్ అప్. అందరూ చూడగలరు? కాబట్టి మేము మా స్టాక్ ఫ్రేమ్ కలిగి. మేము ఒక స్థానిక వంటి లో వ్యూహం సేవ్ చేస్తున్న ఈ ఫంక్షన్ లో వేరియబుల్. మా శ్రేణి ఐదు మచ్చలు కలిగి. ఆ యొక్క అన్ని నిల్వ చేయబడుతుంది ఇది స్టాక్ ఫ్రేమ్ లో. మేము దాటి వ్రాయడం మొదలు ఉంటే ఈ శ్రేణి యొక్క సరిహద్దులు - కాబట్టి మేము లోకి రాయడం మొదలు ఉంటే, యొక్క ఆ 0 చెప్పాలి చూద్దాం. ఆ ఐదు సూచికలు ఉన్నాయి మా శ్రేణి యొక్క. మేము ఇండెక్స్ 5, లోకి వ్రాయడం మొదలు ఉంటే ఇది మేము ఒక కలిగి ఉన్నప్పుడు మేము లేదు పరిమాణం 5 యొక్క శ్రేణి, మేము లోకి వ్రాయడం మొదలు ఇండెక్స్ 6, 7, 8, 9, మేము ఒక స్టాక్ పొందవచ్చు ఫ్లో లోపం. సాధారణంగా ఇది కాదు - మీరు బహుశా ఇబ్బందులను పొందుటకు ఒక ద్వారా మీరు వెళ్ళి ఉంటే. కానీ సాధారణంగా, మీరు పొందుతారు మీరు చాలా ద్వారా వెళ్ళి ఉంటే చాలా ఇబ్బంది మరియు మీరు ఇప్పటివరకు పైగా మీరు వ్రాసే వెళ్ళి ఆ తిరిగి చిరునామా పైగా ఉన్న ఇది ఫంక్షన్, స్టాక్ ఫ్రేమ్ దిగువ. కుడి, ఎందుకంటే? మీరు - లో - క్షమించండి. కాదు "కుడి ఎందుకంటే." స్టాక్ ఫ్రేమ్ లో, మీరు మీ స్థానిక వేరియబుల్స్. స్టాక్ చాలా దిగువన ఫ్రేమ్ తిరిగి చిరునామా ఉంది. ఆ ఫంక్షన్ పేరు ఉంది ఇది ఓవర్ వెళుతుంది. మరియు మీరు తిరిగి తిరిగి రాస్తుంది ఉంటే చిరునామా, అప్పుడు ఈ స్టాక్ ఫ్రేమ్ ఉన్నప్పుడు, మీరు స్టాక్ ద్వారా వెళుతున్న చేసినప్పుడు ఫ్రేమ్ మరియు ప్రతి లైన్ అమలు, మీరు మీ కొత్త తిరిగి చిరునామా వెళ్ళండి అన్నారు బదులు అక్కడ వ్రాసిన అసలు ఒక. మరియు ఆ మేము చూసిన ఎలా కొన్ని భద్రతను నాశనం కంప్యూటర్లతో జరుగుతుంది. కనుక స్టాక్ ఓవర్ఫ్లో, చిన్న లో, ఉంది మీరు స్టాక్ లో భాగంగా తిరిగి రాస్తుంది మీరు స్థానిక ఉపయోగించడానికి చేయాలో వేరియబుల్ మీరు ఉపయోగించే కోరుకుంటున్నాము, మరియు చేస్తున్నారు ముఖ్యంగా మీరు తిరిగి రాయటం మొదలు ఉన్నప్పుడు వంటి ముఖ్యమైన విషయాలు చిరునామా తిరిగి. మీరు లోపం పొందుతారు పేరు మరియు ఆ. లేదా ఉండవచ్చు మీరు ప్రారంభిస్తారా కూడా లోకి రాయడం - బైనరీ శోధన చెప్పడం కుడి ప్రధాన పై. మీరు, చాలా ఓవర్ రైట్ చేసాయి ఉంటే ప్రధాన లోకి రాస్తుంది. కానీ సాధారణంగా, మీరు ముందు లోపం కంప్యూటర్ తెలుసు గనుక మీరు ఏదో చేస్తున్నా చేయడం లేదు. అవును. STUDENT: తేడా ఏమిటి ఒక స్టాక్ ఓవర్ఫ్లో మధ్య మరియు ఒక బఫర్ ఓవర్ఫ్లో? జాసన్ HIRSCHHORN: బఫర్ ఓవర్ఫ్లో మరింత సాధారణ రకమైన ఉంది నేను వివరించిన చేసిన ఏమి. STUDENT: కాబట్టి ఒక స్టాక్ ఓవర్ఫ్లో ఒక ఉంది ఒక బఫర్ ఓవర్ఫ్లో యొక్క ఉదాహరణకు. జాసన్ HIRSCHHORN: ఖచ్చితంగా. ఈ మేము ఒక భావిస్తున్నది వ్యూహం బఫర్, సైన్ వెళ్ళడానికి విషయాల కోసం ఒక స్థలం ఈ ఒక స్టాక్ బఫర్ ఓవర్ఫ్లో ఉంది. మేము ఒక నిండుగా బఫర్ ఓవర్ఫ్లో చూపుతుంది. ఇది అక్కడ తరచుగా బఫర్, ఉంది ఉంటే వ్యూహం కుప్ప ఉంది, మరియు మేము ఆ హద్దులు ఓవర్రైట్, అప్పుడు మనం ఒక నిండుగా బఫర్ ఓవర్ఫ్లో. మరియు ఈ కోర్సు యొక్క పరిధిని దాటి, వారు ఒక బిట్ భిన్నంగా కనుగొనబడింది చేస్తున్నారు. కంపైలర్ ప్రత్యేక ఉంది ప్రతి గుర్తించే మార్గాలు. కానీ ఒక బఫర్ ఓవర్ఫ్లో మరింత సాధారణ ఉంది నేను వివరించారు రకం, ఒక స్టాక్ బఫర్ ఓవర్ఫ్లో ఉంది. మీ ప్రశ్నకు సమాధానం లేదు? స్వీట్. ఇతర ప్రశ్నలు సంబంధిత ఉన్నాయి స్టాక్ లేదా కుప్ప? అవును. STUDENT: నేను మీరు ఉచిత తీగలను కలిగి తెలుసు వారు కుప్ప లో ఉన్నారు ఎందుకంటే మరియు మీరు మెమొరీ లీక్ వద్దు. కానీ మీరు ప్రపంచ వేరియబుల్స్ విడిపించేందుకు ఉన్నాయి మరియు ఆ వంటి అంశాలను? లేదా వారు స్వయంచాలకంగా విముక్తి? జాసన్ HIRSCHHORN: మంచి ప్రశ్న. కాబట్టి cs50.h లో, మేము ఈ విషయం సృష్టించడానికి కోసం మీరు ఒక స్ట్రింగ్ అని. ఒక స్ట్రింగ్ నిజంగా ఏమిటి? STUDENT: చార్ స్టార్. జాసన్ HIRSCHHORN: ఒక చార్ స్టార్, ఒక పాయింటర్ ఒక పాత్ర, ఒక పాయింటర్ పాత్రల వ్యూహం. తీగ ఉంది ఏమిటి. కాబట్టి మేము, ఇది ఉచితం చేయాలి ఎందుకంటే GetString, ఇది మేము చాలా ఉపయోగిస్తారు - స్ట్రింగ్ పేరు GetString సమానం - మాకు కోసం కొన్ని మెమరీ mallocs నిండుగా ఆపై ఒక పాయింటర్ తిరిగి ఆ మొదటి పాత్ర స్ట్రింగ్, ఒక చార్ స్టార్. కాబట్టి కనబడే, మీరు లేకపోతున్నాను ఉంటే మీ తీగలను ఏ ఉచిత రాయడం మీరు ఇప్పటివరకు అని చేసిన, మీరు కొన్ని మెమరీ రావడం జరిగింది. కోర్సు యొక్క మేము గురించి మాట్లాడారు లేదు ఇది, కాబట్టి ఎవరూ లో సంపాదించిన ఇది చేయడం కోసం ఇబ్బంది. అయితే, ముందుకు వెళ్ళడం. మీరు GetString కాల్ వచ్చినప్పుడు, మీరు కుప్ప మీద కొన్ని అంతరిక్ష mallocing. మరియు మీరు ఆ తరువాత ఉచిత కాల్ లేకపోతే స్ట్రింగ్, మీరు మెమొరీ లీక్ ఉన్నాయి. మీ ప్రశ్నకు సమాధానం? అవును STUDENT: కాబట్టి అలా, మేము ఉపయోగించగలను తిరిగి ముందు ఉచిత కుడి? వంటి, పరిధిలో, నేను ఊహిస్తున్నాను ఉంటే మేము లోపల ప్రధాన Int,, చెప్పడానికి ఆ లోపల అని కోడ్ యొక్క పరిధిని వంకర జంట కలుపులు, కుడి ముందు - మీరు ఎక్కడ బీమా సాధారణంగా రిటర్న్ ఉంచండి. మీరు ముందు ఉచిత ఉంచగలను? జాసన్ HIRSCHHORN: మీరు ఉచిత ఉంచవచ్చు మీరు ఉచిత ఉంచాలి కావలసిన చోట. ఈ సాహసోపేతంగా కేటాయించిన ఎందుకంటే వేరియబుల్స్ Please, ఒక నిర్దిష్ట పరిధికి ఆవల నివసిస్తున్నారు ఫంక్షన్, మీరు ఒక లో malloc కాల్ ఉంటే ప్రత్యేక ఫంక్షన్, ఉదాహరణకు, GetString, మీరు ప్రధాన లో ఉచిత కాల్ చేయవచ్చు. మీరు కాల్ లేదు నిర్దిష్ట ఫంక్షన్ లో malloc అని పిలుస్తారు. కానీ మీరు కాల్ చేయాలి ప్రధాన తిరిగి ముందు. అది నిజంగా ఆధారపడి ఉంటుంది. ఇది మీరు ఆ malloced ఎందుకు ఆధారపడి మొదటి స్థానంలో స్పేస్. కొన్ని ప్రజలు కాల్ అందంగా త్వరగా విడిపించేందుకు. కొంతమంది వరకు ఉచిత కాల్ వారి కార్యక్రమం చివరిలో. మరియు వారు ద్వారా వెళ్తారో మరియు ఉచిత ప్రతిదీ. మీరు malloc అని ఎందుకు ఆధారపడి ఉంటుంది. STUDENT: మీరు ఏమి చెబుతారు మీరు ఉపయోగం GetString అని ఉంటే? మీరు ఏ ఉచిత చెప్పాను? జాసన్ HIRSCHHORN: కాబట్టి కోసం వాక్యనిర్మాణం ఉచిత కేవలం ఉచిత, ఓపెన్ బ్రాకెట్, దగ్గరగా ఉంది బ్రాకెట్, మరియు పాయింటర్ యొక్క పేరు. కాబట్టి మీరు స్ట్రింగ్ పేరు సమానం వ్రాస్తే GetString, మీరు ఇక్కడ పేరు చాలు. ఆ పాయింటర్ యొక్క పేరు ఉంది. మరియు అది స్వేచ్ఛా మెమొరీ తెలుసు. STUDENT: ఇది మెమరీ కాపాడి కాబట్టి, పాయింటర్ ఇప్పటికీ ఆ స్థానానికి పాయింట్లు మెమరీలో? లేదా కూడా ఖాళీ పాయింటర్ ఇది చూపాడు చిరునామా. జాసన్ HIRSCHHORN: మేము ఆ ప్రయత్నించాలి. మేము ఆ కోడ్ ఉండాలి. మేము వెళ్ళాక యొక్క వచ్చి తెలియజేయండి కోడింగ్, మరియు యొక్క ఆ కోడ్ తెలియజేయండి. మరియు మీరు సమాధానం గుర్తించడానికి కావాలా ఆ, మీరు కూడా కోడ్ ఆ ఈ సమయంలో. కానీ ఒక గొప్ప ప్రశ్న. STUDENT: ఇది సాధ్యమేనా చాలా త్వరగా ఉచిత ఏదో? కాబట్టి మీరు ఇప్పటికీ మీ ప్రోగ్రామ్ అవసరం, మరియు మీరు ఆ మెమరీ విముక్తి స్థలం? జాసన్ HIRSCHHORN: అవును. ఇది, అవకాశం ఉంటే మీరు ఉచిత ఏదో మరియు మీరు మళ్ళీ ఉపయోగించడానికి, మీరు లోపం ఆకస్మికంగా. మీరు విముక్తి కారణంగా ఆ, మీరు ఉంది అప్పుడు ఏదో మరియు తరువాత అని. కాబట్టి ఒక ప్రోగ్రామర్ యొక్క తప్పు. అయితే. ఆ రాస్తుంది. ప్రశ్నలేవీ - అవును. STUDENT: మీరు ఉండాల్సి ఉంటే కేవలం ముందు సాధారణంగా ఇది ఉచితం కార్యక్రమం ఉంటే అని అర్థం, ముగుస్తుంది కార్యక్రమం ముగుస్తుంది మరియు మీరు ఇది ఉచితం లేదు, మెమరీ ఇప్పటికీ కేటాయించబడుతుంది? జాసన్ HIRSCHHORN: మీ ప్రోగ్రామ్ ముగిస్తే మరియు మీరు, ఏదో విముక్తికై మర్చిపోతే ఆ స్మృతి అంతటా కేటాయించారు మీ ప్రోగ్రామ్ యొక్క జీవిత. మీ ప్రోగ్రామ్, పూర్తిగా మూసివేయబడినప్పుడు ఆ స్మృతి ఉండదని ఎప్పటికీ అక్కడే. కంప్యూటర్ తెలుసుకోవాలి తగినంత స్మార్ట్ ఉంది ఆ కార్యక్రమం మూసివేయబడినప్పుడు, ఇది మెమరీ అన్ని వదిలించుకోవటం అని ఆ కార్యక్రమం సంబంధం జరిగినది. అయితే, మీరు అమలు చెయ్యవచ్చు టూల్స్ ఉన్నాయి గుర్తించడానికి ఒక కార్యక్రమంలో, ఉంటే ఉన్నప్పుడు కార్యక్రమం మీరు మర్చిపోతే, పూర్తి కొన్ని మెమరీ విడిపించేందుకు. మరియు మీ తదుపరి సమస్య కోసం ఇక్కడ సెట్ మీరు malloc ఉపయోగించి మరియు ఉపయోగించి వస్తుంది గమనికలు, మీరు ఈ నడుస్తున్న ఉంటుంది చూడటానికి మీ కార్యక్రమాన్ని ప్రోగ్రామ్, ఉన్నప్పుడు ప్రధాన తిరిగి, మీరు కొన్ని కలిగి unfreed మిగిలారు ఆ విషయాలు. కాబట్టి వారు malloced ఉండడానికి వెళ్ళి లేదు ఎప్పటికీ మీ కంప్యూటర్ లో. ఆ, వృధా అవుతుంది, ఎందుకంటే చాలా త్వరగా, కంప్యూటర్లు మెమరీ రన్నవుట్. కానీ వారు మీ ముగిసే వరకు అమలు చేస్తే ప్రోగ్రామ్ మరియు వారు విముక్తులమై లేదు మీ కార్యక్రమం ఇప్పటికీ ఒక సమస్య, నిష్క్రమిస్తుంది ఈ సాధనం సహాయపడే మీకు పరిష్కరించడానికి. STUDENT: Valgrind అని? జాసన్ HIRSCHHORN: ఇది Valgrind అని. మరియు మీరు ఉంటాం - STUDENT: కానీ మేము తెలుసు లేదు ఆ క్విజ్, అయితే? నేను అర్థం, దాని గురించి మాట్లాడారు జరిగినది ఉపన్యాసంలో కొద్దిగా. జాసన్ HIRSCHHORN: కాబట్టి Valgrind ఆ ఉపకరణం యొక్క పేరు. అది తెలుసుకోకుండానే ఉంది క్విజ్ తగినంత. కానీ మీరు ఇంకా ఉపయోగించలేదు మీ మేము వచ్చింది కారణంగా సమస్య సెట్ ఒక స్పష్టంగా నిర్వహించాయి ఆ సమస్య సెట్ malloc తో లేదా మీరు malloc ఉపయోగించి. కాబట్టి మీరు ఇంకా Valgrind ఉపయోగించలేదు. కానీ మీరు దాన్ని ఇంకా ఉపయోగిస్తుంది కాకుండా తరువాత. STUDENT: మీరు మళ్ళీ ఏమి Valgrind ఉంది? జాసన్ HIRSCHHORN: క్షమించాలి? STUDENT: మీరు ఏమి మళ్ళీ Valgring ప్రయోజనం ఉంటుంది? జాసన్ HIRSCHHORN: Valgrind పేరు - GDB, మీరు మీ కార్యక్రమాన్ని డీబగ్ సహాయపడుతుంది వంటి Valgrind మీరు కనుగొనడానికి సహాయం చేస్తుంది ఉంటే విషయాలు విముక్తి కాలేదు మీ ప్రోగ్రామ్ మూసివేయబడినప్పుడు. కాబట్టి మీరు మీ కార్యక్రమాన్ని అమలు చేస్తాము. మీ ప్రోగ్రామ్ నిష్క్రమిస్తుంది, చెప్పాను చేస్తాము మీ ప్రోగ్రామ్ malloc ఈ అనేక అని ఈ అనేక బైట్లు కోసం సార్లు, మరియు మీరు ఈ అనేక సార్లు ఉచిత అని. కాబట్టి మీరు ఈ అనేక బైట్లు వదిలి విముక్తి లేకుండా. లేదా మీరు ప్రతిదీ విముక్తి చేసిన సే చేస్తాము. మంచి ఉద్యోగం. STUDENT: OK. మరియు అది Valgring అని? జాసన్ HIRSCHHORN: V-A-L-G-R-I-N-D. STUDENT: గమనికలు గురించి ఒక ప్రశ్న. మీరు n స్టార్ సే x ఏదో సమానం. మీరు పెట్టటం చేస్తున్నా, సమానం అక్కడ, ఏ లోపల పెట్టి చేయబడిన ఆ ఉంది ఏమి x సూచించే, లేదా x యొక్క పాయింటర్? జాసన్ HIRSCHHORN: మీరు చేయగలరా ప్రశ్న పునరుక్తి? మీరు చెప్పే అయితే మేము అది డ్రా చేయవచ్చు? STUDENT: క్విజ్ లో, నిజానికి, మీరు మాకు పంపిన ఒక, ఇది, చార్ వంటిది స్టార్ నిజం కుడి, CS50 రాళ్ళు సమానం? కాబట్టి అర్థం చేసే CS50 రాళ్ళు సత్యానికి సూచించబడిన ఏమిటి? జాసన్ HIRSCHHORN: కాబట్టి మీరు మాట్లాడటం చేస్తున్నాం ఒక స్ట్రింగ్ లో ఒక చార్ స్టార్ గురించి, ఎలా ఆ పని? అవును. OK. యొక్క ఇక్కడ ఈ డ్రా లెట్. [ప్రక్క సంభాషణ] జాసన్ HIRSCHHORN: ఈ వేరియబుల్ రకం చార్ స్టార్ అన్నారు. ఒక వేరియబుల్ ఎలా పెద్దది రకం చార్ స్టార్? ఎన్ని బైట్లు? విద్యార్థులు: నాలుగు. జాసన్ HIRSCHHORN: ఇది నాలుగు బైట్లు ఉంది. ఒక వేరియబుల్ ఎన్ని హక్కులు ఉంది రకం Int స్టార్? విద్యార్థులు: నాలుగు. జాసన్ HIRSCHHORN: నాలుగు బైట్లు. అది ఒక పాయింటర్, అది ఎల్లప్పుడూ ఉంది నాలుగు బైట్లు, ఎందుకంటే గమనికలు, వారి విలువ ఒక మెమరీ చిరునామా ఉంది. మరియు CS50 న మెమరీ చిరునామాలు ఉపకరణం నాలుగు బైట్లు పొడవు. కాబట్టి మేము GetString, లేదా మేము కాల్ చేసినప్పుడు సే, stringname లో అప్పుడు సమానం, మరియు డబుల్ కోట్స్ ఒక స్ట్రింగ్ ఉంచండి, మేము ఉంచడం ఉన్నాయి - అలాగే, ఒక చిన్న విభిన్నమైనది. మేము ఉదాహరణగా GetString చేస్తాను. లేదా చార్ స్టార్ ఏదో స్ట్రింగ్ సమానం. సారీ, ఉదాహరణ మీరు చదివే? STUDENT: చార్ స్టార్ సత్యం సమానం డబుల్ కోట్స్ లో "CS50 రాళ్ళు". జాసన్ HIRSCHHORN: ఈ స్టార్, ఈ మేము కోసం ఈ చరరాశి X పిలుస్తాను మా సాధారణ ప్రయోజనాల. మేము x అనే వేరియబుల్ సృష్టించారు. ఇది రకం చార్ తార. ఇది వరుస ఒక పాయింటర్ అక్షరాలు. ఇక్కడ డౌన్ - కాబట్టి ఈ ఎలా ఈ చేస్తాను ఉంది మెమరీలో పని. ఈ ఒక మెమరీ చిరునామా నిల్వ చేస్తుంది. ఇది మెమరీ చిరునామా నిల్వ చేస్తుంది శ్రేణి లో మొదటి అక్షరం. ఆపై మీరు తర్వాత పాయింటర్, మీరు మొదటి పాత్ర పొందడానికి. మరియు మీరు వంటి ఈ విషయం చదువుతున్న ఒక స్ట్రింగ్, మీ కంప్యూటర్ స్మార్ట్ ఉంది తెలుసు తగినంత, ఈ మొత్తం విషయం చదవండి ఇది ఒక ఎదురుదెబ్బ 0 పొందేంత వరకు. కానీ మీరు అది ఒక పాత్ర చదువుతున్న ఒక సమయం, కాబట్టి మీరు ద్వారా iterating చేస్తున్నారు ఈ స్ట్రింగ్, మీరు కేవలం ఒక చదువుతాను ఒక సమయంలో పాత్ర మీరు ను వరకు బాక్ స్లాష్ 0. ఆ సమాధానం కాదు మీ ప్రశ్న, అయితే. STUDENT: అవును, కానీ మీరు కాదు malloced స్పేస్ ఇంకా ఆ పాయింటర్ కోసం. జాసన్ HIRSCHHORN: నేను చాలా ఖచ్చితంగా తెలియదు వేటి మీరు శోధిస్తున్న, నేను క్విజ్ లేదు ఎందుకంటే. ఒక ఉపయోగపడిందా రావలసిన మరో TF నుండి వనరు. మీరు ఒక స్ట్రింగ్ సృష్టిస్తున్నా స్టాక్ లేదా ఒక స్థానిక వేరియబుల్ వంటి, ఇది చేస్తాము కేవలం ఆరోపణలను శ్రేణి కాకుండా ఉంటుంది సూచించే సాధారణంగా ఒక చార్ స్టార్ మరొక స్ట్రింగ్. కానీ నేను తెలియదు. మరో ఒక పాయింటర్ కావచ్చు స్టాక్ స్ట్రింగ్ అలాగే. అవును. STUDENT: నేను మీరు అవసరం తెలుసు పాయింటర్ ఉంటే మెమరీ కేటాయించే లోపలి ప్రకటించింది విధానం మరొక ఫంక్షన్ యొక్క. మీరు ఉంటే అదే విషయం అలా చేయాలి ప్రధాన లోపలి ప్రకటించిన, మీరు ప్రధాన లోపలి ఉపయోగిస్తున్నట్లయితే? జాసన్ HIRSCHHORN: కాబట్టి అవును. మీరు ఏ ఒక పాయింటర్ ప్రకటించవచ్చు మెమరీలో మెమరీ చిరునామా. ఇది ఒక స్థానిక యొక్క మెమరీ చిరునామా ఉంటుంది వేరియబుల్, తరచు అయితే, ప్రజలు మెమరీ చిరునామాలు ప్రకటించలేదు వారు ఎందుకంటే స్థానిక వేరియబుల్స్ ఆ ఫంక్షన్ తిరిగి దూరంగా ఒకసారి, ఇది మేము సాధారణంగా malloc విషయాలు ఎందుకు. అయితే, మీరు ఒక పాయింటర్ డిక్లేర్ కాలేదు మరొక స్థానిక వేరియబుల్. ఇది కేవలం సాధారణంగా పని కాదు. కానీ నేను ఆ పరిశీలించి పడుతుంది తరగతి తర్వాత నిర్దిష్ట విషయం. అవును. STUDENT: నేను ఈ విధమైన భావిస్తున్నాను అడిగినప్పుడు ఏమి. ఇది ప్రారంభించడం వింత అనిపించడం లేదు ఒక వంటి ఒక పాయింటర్ చిరునామా, కానీ ఏమి ఒక విలువ వంటి తెలుస్తోంది. CS50 లోపల ఏమి ఉంది ఉన్నట్లు కనిపిస్తోంది విషయం చూపించి చేస్తున్నారు కాదు అసలు చిరునామా, కుడి? జాసన్ HIRSCHHORN: కాబట్టి ఆ కేసు, అయితే. ఏం కాదు. మీరు ఒక చార్ స్టార్ డిక్లేర్ చేసినప్పుడు, ఇది ఒక మెమరీ చిరునామా ఉంది. గమనికలు అన్ని మెమరీ చిరునామాలు ఏదో సూచించే. వేరే ఏదో న కావచ్చు స్టాక్, కానీ దాదాపు ఎల్లప్పుడూ ఉంది మేము ఉపయోగించారు చూస్తారు విధంగా నిండుగా. కానీ stringname డబుల్ కోట్ సమానం ", GetString" మేము ఆ చూడగలరు మరియు మేము ఆ ద్వారా చూసి ఆ కోడ్ చేయడం. GetString స్ట్రింగ్ లో సేవ్ లేదు ఆ వేరియబుల్, లేదా సంసార స్ట్రింగ్ పేరు ఆ సేవ్ లేదు ఉంది వేరియబుల్, ఆ ఎందుకంటే కాదు ఎలా గమనికలు పని. అర్ధవంతం లేదు? STUDENT: అవును. జాసన్ HIRSCHHORN: OK. ఆశాజనక, ఆ కాదు ఎవరైనా గందరగోళంగా. ఇది అయితే, మేము మళ్ళీ చూడవచ్చు ఒక బిట్ లో, మేము నిజంగా ఎందుకంటే ఆశాజనక రెడీ ఏదో కోడ్ని తీగలను తో పని మరియు మీరు అనుభూతి సహాయం వారితో మరింత సౌకర్యవంతమైన. ఈ సంబంధించి ఏ ఇతర ప్రశ్నలు విషయాలు లేదా ఇతర అంశాలు నేను తిరిగి ఉంచుతాము? మరియు - ప్రస్తుతం. అవును, అల్డెన్. ALDEN: ఈ పూర్తిగా సంబంధం, కానీ మేము కేవలం వెళ్ళే నిజంగా త్వరగా మేము తెలుసుకోవలసినది ఒక 32 మరియు మధ్య వ్యత్యాసం గురించి 64-bit మిషన్? జాసన్ HIRSCHHORN: అవును. కాబట్టి 32 బిట్స్ ఎన్ని బైట్లు? ALDEN: ఇది నాలుగు బైట్లు ఉంది. జాసన్ HIRSCHHORN: ఇది నాలుగు బైట్లు ఉంది. మరియు 64 బిట్స్ ఎన్ని బైట్లు? STUDENT: ఎనిమిది. జాసన్ HIRSCHHORN: ఎనిమిది బైట్లు. మరలా, ఎనిమిది బిట్స్ ఒకటి బైట్ ఉంది. మీ CS50 ఉపకరణం ఒక 32-bit మిషన్. కాబట్టి మెమరీ చిరునామాలు పొడవైన నాలుగు బైట్లు. 2 32 ఉన్నాయి మెమరీ చిరునామాలను. 0 32 మైనస్ 1 2 కు. మరియు నేను మంచి కాదు, కానీ ఆ మీరు అవసరం ఏమి బహుశా పరిధిని , ఒక 32-bit మిషన్ కోసం తెలిసిన మెమరీ చిరునామాలు,, మళ్ళీ, నాలుగు బైట్లు పొడవు మరియు గరిష్ట మొత్తం ఉంది మెమరీ చిరునామాలు. అలాగే, డేటా రకాలు - ఈ వంటి ఏదో కావచ్చు బాగా పేర్కొంది ఉపయోగకరమని. ఒక డేటా రకాన్ని యొక్క పరిమాణం మీద ఆధారపడి ఉంటుంది మీరు పనిచేస్తున్న యంత్రం. కాబట్టి చార్, ఒక పాత్ర, ఎలా ఉంది మా CS50 ఉపకరణం అనేక బైట్లు? ఒక బైట్. మరియు అది నిజానికి ఒక బైట్ వంటి ఉంది బాగా ఒక 64-bit కంప్యూటరులో. మరియు అత్యంత డేటా రకాల అదే నెంబర్ ఉంటాయి రెండు కంప్యూటర్లలో బైట్లు. కానీ కొన్ని డేటా రకాలు వివిధ ఉంటుంది రెండు కంప్యూటర్లలో. కాబట్టి ఆ సమర్థవంతంగా ఉంటుంది మీరు తెలుసుకోవాలి మాత్రమే విషయం. అయితే ఆ, నేను, సరిహద్దులు దాటి ఉంది - మీరు తిరిగి చూస్తే, దాదాపు అనుకూల ఉన్నాను పాత క్విజ్లు వద్ద, అది, భావించవచ్చును మీరు ఉపయోగిస్తున్నట్లయితే సమస్యలు కోడింగ్ ఒక 32-bit మిషన్. కానీ ఆ పాటు వెళ్ళడానికి, ఉన్నాయి మీకు ఆసక్తి కేసు, ఉన్నాయి ఒకటే డేటా రకాల అన్ని కంప్యూటర్లలో పరిమాణం. మీరు ఇలా చూసిన uint32_t, మీరు లేదా మారవచ్చు చూసాం కాదు. ఒక డేటా రకం. ఆ 32 బిట్స్ ఉన్నా ఉంటుంది, అని ఈ ఏమి కంప్యూటరులో. కాబట్టి ప్రజలు పోర్టబుల్ రాయడం చేసినప్పుడు కోడ్, వారు బహుశా ints ఉపయోగించదు. వారు ఈ ఇతర డేటా ఉపయోగిస్తాము వారు తెలిసిన రకాల అదే ఉంటుంది ప్రతి కంప్యూటరులో పరిమాణం. మధు. మధు: నేను ఒక ప్రశ్న సంగ్రహం విధానంలో. కాబట్టి మీరు ఉపయోగించే ప్రోగ్రాం వ్రాస్తున్నట్లయితే CS50 లేదా ఏదో వంటి ఒక లైబ్రరీ ఆ వంటి, నేను తెలుసు లైబ్రరీ , ఏదో ఒక సమయంలో, ఉండాలి కంపైల్ మరియు సైన్ లింక్ కానీ ఎంత ఆ సమయంలో జరుగుతుంది మీ ప్రోగ్రామ్ సంగ్రహం? ఆ లైబ్రరీ ప్రక్రియ యొక్క ఏ భాగం మీరు జరుగుతుంది మీ స్వంత ప్రోగ్రామ్ కంపైల్? జాసన్ HIRSCHHORN: కాబట్టి యొక్క వీడలేదు ఈ ప్రక్రియ యొక్క సాధారణంగా దశలను. మీరు మీ. సి ఫైల్ను వ్రాయడానికి. మీ. సి ఫైలు, మీరు # ఉన్నాయి మీ శీర్షిక గ్రంథాలయాలు, ఉదాహరణకు, cs50.h. పదునైన కూడా ఏమి చేస్తుంది లైన్ మీ ప్రోగ్రామ్ ఏమి? Akchar. AKCHAR: ఇది యొక్క ప్రోటో జతచేస్తుంది శీర్షిక నుండి విధులు గ్రంథాలయాల్లో ఫైళ్లు. జాసన్ HIRSCHHORN: ఖచ్చితంగా. ఇది ఆ ఫంక్షన్ నమూనాలను జతచేస్తుంది మీ కోడ్. మీ కోడ్ లో కంపైల్ ఉంది కాబట్టి ప్రారంభ దశలు, కంపైలర్ తెలుసు ఈ విధులను నిజంగా, మరియు ఆ ఎక్కడో వారు నిర్వచించబడలేదు. . H ఫైళ్లు కలిపి శుభకార్యములకు నిర్వచనాలు లేదా ఎలా ఆగుతూ. Cs50.h కేవలం ఏదో కలిగి GetString నిజమైన విషయం జరుగుతుంది. మరియు standardio.h printf చెప్పారు ఇదే నిజమైన విషయం. ఈ తో మీ సి భాషను. శీర్షిక ఫైలు కొన్ని లోకి మారిన కావాలి కంప్యూటర్ కోడ్, ఇది చివరికి బైనరీ లోకి మారిన కావాలి కోడ్, 0 మరియు 1 యొక్క. మరియు ఆ కోడ్ చివరికి అమలు అవుతుంది. -L CS50 లైన్ - ఉదాహరణకు, మీరు గణగణమని ద్వని చేయు వ్రాస్తున్నప్పుడు - ఆపై మీరు ఉన్నాయి-l CS50, మీరు సైన్ టైప్ మరియు మీరు చూడండి. మీరు వ్రాసి, మీరు చేస్తాము ఇక్కడ ఆ లైన్ చూడండి. మరియు మేము రెండవ ఆ చూస్తారు ఉన్నప్పుడు మేము కోడ్ లేదా తరువాత మేము కోడ్ చేసిన. కానీ-l CS50 లైన్ ఏదో చేస్తుంది కంటే భిన్నమైనది # Cs50.h. ఉన్నాయి ఆ-l CS50 లైన్ ఏమి చేస్తుంది? Avi? AVI: నేను లింకున్న చెప్పాలనుకోవడం ఫంక్షన్ లైబ్రరీ . O ఫైళ్లు వంటి, కాల్. జాసన్ HIRSCHHORN: కాబట్టి చాలా దగ్గరగా, మచ్చ న లేకపోతే. -L CS50 బైనరీ ఫైలు తీసుకుని మీ బైనరీ ఫైల్ తో విలీనం. కాబట్టి cs50.h, టర్నింగ్ లో ఏ పాయింట్ ఉంది ప్రతి బైనరీ C భాష నుండి cs50.h ఇది ఉపయోగిస్తారు చేయబడిన సమయం. ఆ, వెర్రి ఉంటుంది ఎందుకంటే ఆ సమయం చాలా వృధా అవుతుంది. కాబట్టి ఇది ఇప్పటికే సంకలనం చేయబడింది మరియు ఒక ఎక్జిక్యూటబుల్ మారింది. ఇప్పుడు అది విలీనం కావడం చివరిలో మీ ఫైలు. కాబట్టి ఆ 1 మరియు 0 యొక్క వెళ్తున్నారు మీ వాటితో విలీనం మరియు చివరిలో 0 యొక్క. కాబట్టి ఇప్పుడు మీరు నిజంగా అసలు ఉంటుంది 1 మరియు 0 యొక్క ఎలా GetString నిర్వచించే, ఉదాహరణకు,, పనిచేస్తుంది, లేదా ఎలా printf ఉదాహరణకు, పనిచేస్తుంది. మరియు మరింత సమాచారం కోసం, ఉంది ఒక నేట్ అని ఇచ్చే చిన్న సంకలనం మీరు ఆ వెళ్తాడు తనిఖీ చెయ్యండి ఈ దశలను ద్వారా. కానీ - అవును. STUDENT: వారు ఎల్లప్పుడూ O ఫైళ్లు. వారు లైబ్రరీ రూపంలో ఉన్నప్పుడు, వంటి - లింక్, విలీనం చేయడానికి సిద్ధంగా వారు బైనరీ కోడ్ లో ఉన్నాము? జాసన్ HIRSCHHORN: OK. ఏ - STUDENT: అని ఎల్లప్పుడూ కోసం కేసు గ్రంథాలయాలు మీరు వాటిని లింక్? జాసన్ HIRSCHHORN: అవును. కాబట్టి. లు ఉంటుంది ఫైళ్ళకు ఉంది కూడా ఉంటుంది యంత్రం కోడ్, మీకు గుప్తమైన. మీరు ఆ గురించి ఆందోళన అవసరం లేదు. కానీ సాధారణంగా, అవును, వారు o సిద్ధంగా ఫైళ్లు లో. ఉంటుంది. STUDENT: మీరు రవాణా ఉన్నప్పుడు ఒక లైబ్రరీ, మీరు మాత్రమే రవాణా చెయ్యాలి . H మరియు. O? మీరు. సి లేదా. లు రవాణా లేదు. జాసన్ HIRSCHHORN: కాబట్టి - మరియు ఈ ఉంటే, అదే ఈ చిన్న లో ఉంది ఈ సమాచారం వస్తున్న తెలుస్తోంది చిన్న త్వరగా. కానీ కంపైలర్సును న చిన్న ఈ గురించి చర్చలు అలాగే. మీరు ఒక లైబ్రరీ రవాణా చేసినప్పుడు, మీరు రవాణా . H శీర్షికా ఫైలును, ఆ ఫంక్షన్ నమూనాలను మరియు 1 యొక్క మరియు 0 యొక్క, మీరు ఇవ్వాలని అవసరమైనవి. మీరు ఇవ్వాలని లేదు ఎలా ఫంక్షన్. సి ఫైలు, పనిచేస్తుంది. ఎందుకంటే ఊహ బిందువు లేదా API లు అభిప్రాయపడుతున్నారు, ఈ SPL బిందువును, స్టాన్ఫోర్డ్ పోర్టబుల్ లైబ్రరీ, అది మీరు గురించి ఆందోళన లేదు కోసం ఎలా కొత్త GRect, పనిచేస్తుంది, లేదా ఎలా పనిచేస్తుంది తరలించడానికి లేదా ఎలా పనిచేస్తుంది జోడించండి. మీరు తెలుసుకోవాలి అన్ని చేర్చండి ఉంది మీరు ఒక విధి ఉపయోగించడానికి, అది ఈ చేస్తుంది. కాబట్టి మీరు నిజంగా తెలుసుకోవాలి లేదు ఎలా ఇది C. మీరు వ్రాయబడినది కేవలం అవసరం తెలుసు, ఇక్కడ క్రియలు, వారు , మరియు ఇక్కడ 1 మరియు 0 యొక్క ఉన్నాయి మీరు నిజంగా వాటిని ఉపయోగించడానికి ఉన్నప్పుడు. కూల్. సంకలనం ప్రశ్నలేవీ లేదా బోర్డు ఇతర విషయాలు? STUDENT: నేను ఒక ప్రశ్న కలిగి పునరావృత విధులు అమలు. సూత్రం గురించి ఒక ప్రశ్న. నేను ఆలోచన అని ఒక భావన కలిగింది. కాబట్టి యొక్క త్వరగా వీలు ఒక నిర్దిష్ట సూత్రం ఉదాహరణకు, ఒక కారకమైన ఫంక్షన్. ఈ ఒక ఉదాహరణ ఎందుకంటే తరచుగా వచ్చే లేదా ఉపయోగిస్తారు సూత్రం వర్ణించేందుకు. కాబట్టి "4!" 4 కారకమైన వంటి చదవబడుతుంది. మరియు 4 కారకమైన అర్థం ఏమిటి? ఆ ఏమి చేస్తుంది? ఎలా మీరు 4 కారకమైన లెక్కిస్తాము? 4 సార్లు 3 సార్లు 2 సార్లు 1. 4 కారకమైన రాయడానికి మరో మార్గం ఈ వ్రాయండి. 4 సార్లు 3 కారకమైన. 3 కారకమైన ఎందుకంటే 3 సార్లు 2 సార్లు 1. కాబట్టి 4 సార్లు 3 కారకమైన 4 ఉంటుంది సార్లు 3 సార్లు 2 సార్లు 1. కారకమైన ఒక గొప్ప ఎందుకు ఉంది సూత్రం అభ్యర్థి, ఇది ఎందుకంటే ఏదో ఉంది స్పష్టం ఒక న మరియు పైగా మరియు పైగా జరుగుతుంది విషయాలు చిన్న సంఖ్య వరకు మీరు ముగింపు చేరుకోవడానికి. మీరు 1 ఉంటాయో, 1 కారకమైన 1 ఉంది. మీరు చాలా ముందుకు చేయవచ్చు. 0 కారకమైన కూడా 1 నిర్వచిస్తారు. మీరు 1 లేదా 0 పొందుటకు కనుక, మీరు చివరిలో, మరియు మీరు తిరిగి అప్ వెళ్లి ప్రారంభించండి. మేము ఒక పునరావృత రాయడానికి కోరుకున్నారు ఉంటే ఒక కారకమైన లెక్కించేందుకు ఫంక్షన్, మేము కొన్ని రాయాలో వాళ్ళెవరూ pseudocode. మేము ఆ pseudocode వ్రాయడానికి ముందు - నేను మీరు అబ్బాయిలు నిమిషాలు ఇస్తాము నకిలీ కోడ్ వ్రాయడానికి లేదా కేవలం ఆలోచించడం దాని గురించి - ప్రతి రెండు ఉన్నాయి పునరావృత ఫంక్షన్ అవసరం. ఆ రెండు విషయాలు ఏమిటి? JACK: ఇది కూడా కాల్ ఉంది. జాసన్ HIRSCHHORN: నోహ్? ఓహ్, జాక్. కొనసాగి. JACK: ఇది కూడా కాల్ ఉంది. జాసన్ HIRSCHHORN: కాబట్టి ఒక పునరావృత ఫంక్షన్, ఒక పునరావృత కాల్ అవసరం ఒక తానే కాల్. ఒకరి. మరియు ఇతర విషయం ఏమిటి? JACK: ఒక బేస్ కేసు. జాసన్ HIRSCHHORN: ఒక బేస్ కేసు. ఒక బేస్ కేసు మేము చెప్పవలసిన ఇక్కడ, ఉంది. మీ ఫంక్షన్ అని చెపుతాడు. బేస్ కేసు మొదటి వచ్చింది. మీరు చివరిలో అయితే తెలుసుకోవాలంటే. మరియు మీరు, చివరిలో మీరు లేదు మీ పునరావృత కాల్. మరియు మీరు, మళ్ళీ ఈ చర్య ద్వారా వెళ్ళి మళ్ళీ మీ బేస్ కేసు తనిఖీ. మీరు ముగింపు కాదు, మీరు తయారు మరొక పునరావృత కాల్, మొదలైన మొదలైన. ఆ ఎందుకు పునరావృత విధులు ఎల్లప్పుడూ ఉంది ఆ బేస్ కేసులు మరియు ఆ అవసరం పునరావృత కాల్స్. మీరు ఒక పునరావృత కాల్ లేదు, అది ఒక పునరావృత ఫంక్షన్ కాదు. మీరు ఒక బేస్ కేసు లేదు, మీరు ఎప్పటికీ వెళ్లి చేస్తుంది ముగింపు ఉండొచ్చు. మరియు బేస్ కేసు ఎప్పుడూ మొదటి వచ్చింది, మీరు ఎల్లప్పుడూ చెక్ అనుకుంటున్నారా ఎందుకంటే మీరు మొదటి చివరిలో అయితే. మేము కొన్ని pseudocode కాబట్టి ముందు, ఎందుకు మీరు గురించి ఆలోచించడం ఒక నిమిషం తీసుకోకపోతే ఎలా ఒక పునరావృత కారకమైన ఫంక్షన్ వ్రాయబడుతుంది? అలాగే, మీరు చేస్తున్న అనేక, రచన కాగితం ఒక షీట్ మీద ముగిసింది మీకు చూడాలని ఏ రేపు క్విజ్ న. చేయడానికి కాబట్టి బహుశా మంచి పద్ధతి మీరు రాస్తున్నాం కోడ్ పేపర్ షీట్ న - లేదా మీరు ఆ చేయగలరు. సెమికోలన్లు ఇక్కడ మీరు తెలుసు. మీరు సిన్టాక్స్ గుర్తు. మీరు చేయలేరు ఎందుకంటే ఒక కంపైలర్ మీరు ఒక చేసామని చెప్పండి. అలాగే, ఆ ​​పంక్తులు, రేపు, పాటు ఉన్నప్పుడు ఉంటే మీరు, సమస్యలు కోడింగ్ చేశారు సారి తరలించారు, లేదా మీరు చాలా అయితే మీరు చేయాలో ఎలా గందరగోళంలో సి లో ప్రత్యేక విషయం వ్రాయడానికి, ఇది నకిలీ కోడ్ రాయడానికి మీరు వీటిని చేస్తుంది లేదా అలాగే లో వ్యాఖ్యలు రాయడం. ఒక కోసం పాక్షిక క్రెడిట్ ఎందుకంటే క్విజ్ లో ప్రశ్నలు చాలా. కాబట్టి మీరు తరలించారు, లేదా ఉండవచ్చు కేవలం అయోమయం. వ్యాఖ్యలు లేదా నకిలీ కోడ్ లో రాయడం తరచుగా మార్గాలు అని మీరు పాక్షిక క్రెడిట్ పొందవచ్చు. కాబట్టి ఏదో వదిలి లేదు క్విజ్ లో ఖాళీ. ఎలాంటి జరిమానాలు ఉంది సైన్ విషయాలు ఉంచడం నిజానికి, నకిలీ కోడ్ లో పెట్టటం లేదా వ్యాఖ్యలు grader సహాయం అన్నారు మీరు నిజంగా తెలిస్తే గుర్తించడానికి ఏమి మీరు బహుశా అవార్డు గురించి మాట్లాడుతూ, మరియు చేస్తున్నారు మీరు ఆ పాక్షిక గుర్తింపు. అలాగే ఆ తరహాలో, స్పష్టంగా వ్రాయండి. మేము నిజంగా మీరు రాస్తున్నాం కాదు ఏమి, మేము మీరు కాల్ వెళ్ళి లేదు ఫిగర్ అర్ధరాత్రి రేపు మీరు రాసిన ఏమిటో. మేము పాయింట్లు ఆఫ్ చూడాలని. బళ్ళో వినడానికి, లేదా స్పష్టంగా వ్రాయండి, మేము మీరు రాశారు చదవగలరు. ఇది రెండు వాక్యాలు చెప్పారు ఉంటే, ఒక పేరా రాయడానికి లేదు. సూచనలను అనుసరించండి. స్పష్టంగా వ్రాయండి. మరియు ఆ వ్యాఖ్యలు లో వ్రాయడానికి లేదా ప్రశ్నలు కోసం pseudocode ఆ అనుకొనుట అవార్డు పాక్షిక క్రెడిట్. OK, యొక్క కారకమైన వినుడు. కాబట్టి మేము ఒక ఫంక్షన్ కారకమైన కలిగి. నేను నిజంగా సి ఈ రాయడానికి ఉంటే, నేను పేరు ముందు చాలు అవ్వాలి పనితీరు? తిరిగి టైప్ ఈ లో ఇది, కేసు, మేము అది Int ఇస్తాము. ఆపై వంకర జంట కలుపులు లోపల ఉంది ఏమి కోసం వంకర జంట కలుపులు లోపల వెళుతుంది ఒక ఫంక్షన్? విద్యార్థులు: ఆర్గ్యుమెంట్ రకం. జాసన్ HIRSCHHORN: దీని వాదనలు. కాబట్టి కారకమైన బహుశా ఒక వాదన పడుతుంది. ఇది బహుశా మాత్రమే ఒక వాదన తీసుకొని వెళ్తాము. మరియు మేము దానిని రాదు అని వస్తుంది పూర్ణాంకం x అనే. మరియు తిరిగి, నమూనా యొక్క రాసేటప్పుడు ఒక ఫంక్షన్ లేదా ఫంక్షన్ రాయడం , మీరు నిర్వచించు ముందు మీ కోడ్ లో డేటా రకం మరియు యొక్క పేరు ఆ ఫంక్షన్ కోసం వేరియబుల్. మీరు ఈ కొన్ని సంఖ్య తరలిస్తారు ఫంక్షన్, ఇది x సూచిస్తారు వస్తారు అంతర్గతంగా. మేము మా కారకమైన చర్య. మేము రెండు విషయాలు, ఒక బేస్ కేసు అవసరం మరియు ఒక పునరావృత కాల్. కారకమైన కోసం బేస్ కేసు ఏమిటి? వ్రాసియున్నాడు మరియు చేసిన ఎవరైనా ఇంకా మాట్లాడే, బేస్ ఏమిటి కారకమైన కేసు? STUDENT: n తక్కువ ఉంటే 2 కంటే, 1 తిరిగి. జాసన్ HIRSCHHORN: n ఉంటే 2 కంటే తక్కువ, 1 తిరిగి. నేను నచ్చిన, ఎందుకంటే 0 మరియు 1 జాగ్రత్త తీసుకుంటుంది. కాబట్టి మేము, x <2 చేయండి 1 తిరిగి. మేము వస్తే మేము, 0 ఆమోదించింది కలిగితే 1 ఆమోదించింది, ఈ ఫంక్షన్ రెడీ వెంటనే 1 తిరిగి. మేము కొన్ని సంఖ్య ఎక్కువ ఆమోదించింది కలిగితే లేదా 2 సమానంగా, మేము చూడాలని మా పునరావృత కాల్. కాబట్టి ఎలా పని అన్నారు? ఈ పని చేసిన మరొకరిని ఎవరు ఇంకా మాట్లాడే నాకు ఇవ్వండి ఈ వేడుకలో పునరావృత కాల్ pseudocode లో? మేము అనేక x జారీ కలిగితే మరియు 2 కంటే ఎక్కువ, ఏ మేము ఏమి అనుకుంటున్నారు? మేము కూడా ఒక ఉదాహరణ పై రాసిన మీరు సూచనను ఇస్తుంది అని వైపు. STUDENT: x సార్లు కాల్ x మైనస్ 1 యొక్క కారకమైన? జాసన్ HIRSCHHORN: సరిగ్గా కుడి. మేము x సార్లు తిరిగి చూడాలని x మైనస్ 1 యొక్క కారకమైన. మరియు, నేను అప్ రాశారు కూడా, ప్రధానంగా, మీరు ఇంగ్లీష్ లో చెప్పారు, ఈ కారకమైన ఫంక్షన్ మళ్ళీ అని అవుతారు. ఇది x మైనస్ 1 న అమలు చేస్తాము. ఇది కొన్ని పూర్ణాంక తిరిగి, మరియు చేస్తాము అది ఈ రెండు గుణిస్తారు చేస్తాము కలిసి మరియు ఆ విలువను ఉంటుంది ఈ అని సంసార తిరిగి కారకమైన ఫంక్షన్, ఇది మైట్ మరో ఉదాహరణ ఉంటుంది ఈ కారకమైన ఫంక్షన్. కాబట్టి ఒక పునరావృత ఒక ఉదాహరణ ఫంక్షన్, చాలా సాధారణ పునరావృత ఫంక్షన్. కానీ వాటిలో చాలా ఈ వంటి ఉంటుంది. మీరు ఒక మంచి పునరావృత కావాలనుకుంటే క్విజ్ సవాలు, కోడింగ్ ప్రయత్నించండి బైనరీ శోధన పునరావృతంగా. ఎందుకంటే మీరు కోసం బైనరీ శోధన చేస్తే సమస్య మూడు సెట్, మీరు బహుశా చేసియున్నారు మరల కొంత లూప్ లో. కానీ కూడా వ్రాయవచ్చు పునరావృతంగా. మీరు మీ స్వంత రాయడానికి అవసరం చూడాలని కొంత ప్రత్యేక ఫంక్షన్ వివిధ ఆదేశ పంక్తి వాదనలు - లేదా కాదు ఆదేశ పంక్తి వాదనలు, కొన్ని వివిధ సాధారణ వాదనలు. కానీ మీరు బైనరీ శోధన రాస్తుంది పునరావృతంగా అలాగే. STUDENT: మీరు కూడా రాసేసే బదులుగా x మైనస్ 1 యొక్క, మీరు కూడా x మైనస్ రాసేసే మైనస్, లేదా మీరు కలిగి ఉంటుంది వ్రాసిన మైనస్ మైనస్ x. మీరు నిజంగా త్వరగా ఎందుకు వివరిస్తుంది ఆ వివిధ విషయాలు ఉంటుంది, తేడా మధ్య ఏమి వంటి x మైనస్ మైనస్ మరియు మైనస్ మైనస్ x? జాసన్ HIRSCHHORN: లేదు, నేను తెలియదు ఆ వెళ్ళాలని అన్నారు. కానీ నేను తరువాత దాని గురించి మీకు చర్చ ఉంటుంది తరగతి. x మైనస్ మైనస్, మైనస్ మైనస్ x 1 ద్వారా x తరుగుదల. కానీ వారు ఒక బిట్ చేయండి. కానీ నేను ఆ వెళ్లాలనుకుంటే లేదు. సూత్రం గురించి ఇతర ప్రశ్నలు లేదా ఈ ఫంక్షన్? ఆ నిజంగా కూడా pseudocode కాదు. ప్రాథమికంగా లో కోడ్ ఉంది మీరు ఈ కోసం రాస్తుంది సి. OK, ఏ ఇతర ప్రశ్నలు ఇక్కడ విషయాలు అప్ గురించి? అవును. STUDENT: నేను త్వరగా తక్కువైన కలిగి ఫ్లోటింగ్ పాయింట్ మరియు ఖచ్చితత్వము. జాసన్ HIRSCHHORN: ఫ్లోటింగ్ పాయింట్ మరియు ఖచ్చితత్వము. కెన్ ఎవరైనా నిజంగా త్వరగా నాకు ఒక తక్కువైన కల్పించడానికి ఫ్లోటింగ్ పాయింట్ మరియు ఖచ్చితత్వము? మీరు అన్ని మీ కోసం దీన్ని వచ్చింది సమస్య సెట్, మీరు అన్ని ఉన్నాము ఇది తెలిసిన. లేదా ఉండవచ్చు కాదు అన్ని మీరు. ఎవరైనా? నాకు ఒక ప్రారంభించారు స్థానాన్ని ఇవ్వండి. ఫ్లోటింగ్ పాయింట్ మరియు ఖచ్చితత్వము. సమస్య ఏమిటి? అవును. విక్టోరియా? వెనెస్సా: వెనెస్సా. జాసన్ HIRSCHHORN: వెనెస్సా. క్షమించాలి. వెనెస్సా: ఒక పరిమిత సంఖ్య మాత్రమే ఉంది ప్రాతినిధ్యం చేసే సంఖ్యల మీరు ఒక, లో లో ఉన్నారు ఎందుకంటే మా కేసు, ఒక 32-bit వ్యవస్థ. కాబట్టి మీరు రకమైన ఉంటుంది కొన్ని సంఖ్యలు తయారు. జాసన్ HIRSCHHORN: కాబట్టి ఆ ఖచ్చితంగా కుడి. మాత్రమే కొంత ఉన్నాయి ప్రాతినిధ్యం ఆ సంఖ్యలు. మీరు రెండు పెద్ద సంఖ్యలో గుణిస్తారు, ఇది మొత్తం ఓవర్ఫ్లో వాటిని ఖాళీలు మీరు ప్రాతినిధ్యం కలిగి పూర్ణాంకం. కొన్నిసార్లు మేము ఉపయోగించే ఎందుకు పేర్కొంది ఒక బదులుగా ఒక పూర్ణాంకానికి యొక్క లాంగ్ లాంగ్. మరింత ప్రదేశములు ఉన్నాయి. ఒక పెద్ద ఎనెక్శర్. ఫ్లోటింగ్ పాయింట్ ఖచ్చితత్వము సంబంధం కలిగి ఆ, కానీ కూడా సంబంధం కలిగి దశాంశ సంఖ్యలు వాస్తవం ఎల్లప్పుడూ ప్రాతినిధ్యం కాదు. క్షమించాలి. నాకు ఈ తిరిగి ఏర్పాటు తెలియజేయండి. దశాంశ సంఖ్య 1.0 ఎల్లప్పుడూ కాదు మీరు వంటి ప్రాతినిధ్యం ఆలోచించే, 1,000000000. ఇది కొన్నిసార్లు వంటి ప్రాతినిధ్యం ఉంది 1,000000001 లేదా 0,999999999. ఇది కూడా 89 విసిరి ఉండవచ్చు ఎక్కడో అక్కడ. కాబట్టి ఆ దశాంశ సంఖ్యలు కాదు ఖచ్చితంగా మీరు వంటి ప్రాతినిధ్యం వాటిని ప్రాతినిధ్యం కోరుకోవడం. కాబట్టి సమస్య సెట్ - ఇది రెండు ఉంది? - సమస్య మేము విచారించింది రెండు, సెట్ మేము కోరుకున్నారు ఫ్లోటింగ్ పాయింట్ సంఖ్యలు, వాటిని మేము కోరుకున్న ఏమిటి ప్రాతినిధ్యం వారికి, సంఖ్య నాణేలు, లేదా సెంట్లను, మేము 100 ద్వారా వాటిని గుణించాలి. మేము వాటిని గుండ్రంగా. మరియు తర్వాత మేము ప్రతిదీ కత్తిరించిన దశాంశ బిందువు వెనుక. ఆ నిర్ధారించడానికి అని వారు మేము కోరుకున్న ఏమిటి వాస్తవానికి సమాన వాటిని సమం. మీరు ఏదో పడుతుంది వార్తలు వచ్చాయి ఒక ఫ్లోట్ మరియు మీరు, ఒక Int మార్చడానికి ప్రతిదీ కత్తిరించిన మైనస్. కొన్ని తేలియాడే పాయింట్ ఉంది ఎందుకంటే ఖచ్చితంగా చెప్పలేని, 100.000 కావచ్చు 99,999999999 వంటి ప్రాతినిధ్యం. మరియు మీరు ప్రతిదీ కట్ ఉంటే వెంటనే కుడి, మీరు చూడాలని తప్పు సంఖ్య పొందండి. అవును. STUDENT: నేను ఒక ప్రశ్న గురించి కాస్టింగ్. ఏ క్రమంలో నిత్యజీవితం గురించి? మీరు ఫ్లోట్ చెయ్యాలనుకుంటే, బ్రాకెట్లలో, 1 విభజించబడింది 10 ద్వారా, 1, 10 ద్వారా విభజించబడింది ఎక్కడ చేస్తుంది అప్పుడు 0.1 ను, అప్పుడు చెయ్యి ఫ్లోట్ గా? జాసన్ HIRSCHHORN: మీకు 10 ద్వారా విభజించబడింది 1 ఫ్లోట్ - STUDENT: అవును, ఆపై సమానం - బాగా, అది సాధారణంగా లో సమాన - అవును. మీరు ఫ్లోట్ అనుకున్న, కుడి? జాసన్ HIRSCHHORN: OK, మేము చూడాలని ఇందుకు లోకి segue ఉపయోగిస్తామో ఈ ప్రశ్నలకు సమాధానాలు కోడింగ్ ద్వారా. మీరు బహుశా చాలా ఉంటుంది ఎందుకంటే ఈ సూక్ష్మ ప్రశ్నలు, మరియు మంచి మార్గం వాటిని పరిష్కరించడానికి కోడింగ్ ద్వారా. కాబట్టి మేము, ఇప్పుడు ఈ కుడి కోడ్ చూడాలని ఆపై మేము తిరిగి వెళ్ళడానికి చేస్తున్నాడనే మీరు కలిగి ప్రశ్న కోడ్. కాబట్టి మొదటి లైన్ - నేను వ్రాసి ఉండకూడదు - ఏమిటి మేము చేయాలనుకుంటున్నారా మొదటి విషయం మేము gedit ఒక కొత్త ఫైల్ తెరుచుకుంటుంది? STUDENT: చేర్చండి. జాసన్ HIRSCHHORN: ఏమి చేర్చండి? STUDENT: CS50 లైబ్రరీ. జాసన్ HIRSCHHORN: OK. మేము ఏమి కలిగి ఉండాలి? మేము కేవలం ఏమి తనిఖీ చూడాలని మీరు ఫ్లోట్ ఏదో నటింపచేయడంతో. కాని మేము మేము అయితే ఉన్నాయి చేయాలి ఒక సి కార్యక్రమం ఎలా రాయాలో? STUDENT: ప్రామాణిక I / O. జాసన్ HIRSCHHORN: stdio.h. మేము నిజంగా ఈ కోసం, అవసరం లేదు కార్యక్రమం, cs50.h, ఇది అయినప్పటికీ అది చేర్చడానికి ఎల్లప్పుడూ ఉపయోగపడిందా. కానీ మేము ఎల్లప్పుడూ stdio.h చేయాలి. STUDENT: C లో కోడింగ్ ఉన్నప్పుడు? జాసన్ HIRSCHHORN: C. లో కోడింగ్ ఉన్నప్పుడు నేను ఈ. సి ఫైల్ గా సేవ్. నేను కొన్ని nice సింటాక్స్ హైలైటింగ్ పొందండి. నేను ప్రధాన లోపల గర్జన రాశారు. గర్జన అర్థం ఏమిటి? STUDENT: ఏ వహించడానికి లేదు ఆదేశ పంక్తి వాదనలు. జాసన్ HIRSCHHORN: ఈ లో తప్ప అర్థం, కేసు, ప్రధాన ఏ తీసుకోదు ఆదేశ పంక్తి వాదనలు. ఇతర సందర్భాల్లో, ఇది ఫంక్షన్ అర్థం ఆదేశ పంక్తి వాదనలు తీసుకోదు. లేదా ఫంక్షన్, నేను అయితే తప్ప రాయడానికి ప్రధాన (తప్ప), ప్రధాన యొక్క చెబుతా ఏదైనా తిరిగి కాదు. కాబట్టి గర్జన కేవలం ఏమీ అర్థం. నేను ఒకవేళ నేను ఏమి రాస్తుంది ఆదేశ పంక్తి వాదనలు పడుతుంది? STUDENT: Int ఆర్క్ సి స్ట్రింగ్ ఆర్క్ వి జాసన్ HIRSCHHORN: Int argc స్ట్రింగ్ argv. అవునా? STUDENT: ఇది చార్ స్టార్ argv బ్రాకెట్లలో ఉంది. జాసన్ HIRSCHHORN: కాబట్టి మీరు రాస్తుంది స్ట్రింగ్ argv బ్రాకెట్లలో లేదా చార్ స్టార్ argv బ్రాకెట్లలో, కానీ మీరు బ్రాకెట్లలో అవసరం. Argv వ్యూహం ఎందుకంటే తంత్రుల గుర్తు. ఇది కేవలం ఒక స్ట్రింగ్ కాదు. కాబట్టి స్ట్రింగ్ argv ఇక్కడ, ఉంది ఒక స్ట్రింగ్ argv అని. స్ట్రింగ్ argv బ్రాకెట్లలో, ఇక్కడ ఉంది తీగలను యొక్క వ్యూహం. కాబట్టి Int argc స్ట్రింగ్ argv బ్రాకెట్లలో ఏదైనా అని నేను బహుశా రాస్తుంది. కాబట్టి మీరు పూర్ణాంకం లో సేవ్ భావించారా? STUDENT: అవును, పూర్ణ. లేదా ఫ్లోట్ లో. జాసన్ HIRSCHHORN: ఫ్లోట్ లో? వంటి, ఫ్లోట్ x 10 ద్వారా విభజించబడింది 1 సమానం. జాసన్ HIRSCHHORN: OK. నేను printf లో ఫ్లోట్ ప్రింట్ చెయ్యాలి? ఏ? STUDENT:% f. జాసన్ HIRSCHHORN:% f. పూర్ణాంకం ఏమిటి? d లేదా నేను. ఒక స్ట్రింగ్ ఏది? STUDENT: s. జాసన్ HIRSCHHORN: s. నేను ఒక కొత్త లైన్ వస్తుందా? STUDENT బ్యాక్స్లాష్ n. జాసన్ HIRSCHHORN: నేను ఏమి తిరిగి లేదు ప్రధాన పరుగులు సరిగ్గా ఉంటే? STUDENT: 0. నేను అయితే, ఆ లైన్ రాయడానికి అవసరం? STUDENT: నం OK, మేము అప్పుడు, ఇది వ్రాయడానికి కాదు. అందరూ ఆ చదువుకోవచ్చు? ఇది ఒక బిట్ చిన్న కనిపిస్తుంది. అందరూ చూడండి, లేదా చేయాలి నేను పెద్ద చేయడానికి? నేను కెమెరా కోసం, మేము చేస్తాము భావించడం అయితే, అది ఒక బిట్ పెద్ద. జాసన్ HIRSCHHORN: నేను ఈ చెయ్యడానికి . ఒక ఎక్జిక్యూటబుల్ లోకి ఫైల్ c, ఏమి నేను వ్రాస్తారా? STUDENT: పరీక్ష చేయండి. జాసన్ HIRSCHHORN: క్షమించాలి? STUDENT: పరీక్ష చేయండి. జాసన్ HIRSCHHORN: పరీక్ష చేయండి. మేము గురించి మాట్లాడుతూ ఈ లైన్. గణగణమని ద్వని చేయు. గణగణమని ద్వని చేయు ఏమిటి? కంపైలర్ యొక్క పేరు. ఈ లైన్ ఏమిటి? STUDENT: GDB ఉపయోగించడం కోసం దానిని అమర్చండి. జాసన్ HIRSCHHORN: సెట్స్ దానిని GDB ఉపయోగించడం కోసం. ఈ లైన్, అంటే ఏమిటి అర్థం? STUDENT: మూల కోడ్. జాసన్ HIRSCHHORN: పేర్కొంది మూలం ఫైలు,. సి ఫైలు. ఈ రెండు పంక్తులు ఏమి చెయ్యాలి? లేదా ఈ రెండు కాదు పంక్తులు. STUDENT: ఇది పేర్లు పరీక్షించటం. జాసన్ HIRSCHHORN: కాబట్టి డాష్ o చెప్పారు, భిన్నంగా అది ఏదో పేరు. మరియు ఇక్కడ మీరు పరీక్ష ఇది చేస్తున్నారు. నేను ఆ లో లేదు ఉంటే, ఏమి ఈ చేస్తుంది? STUDENT: A.out. జాసన్ HIRSCHHORN: A.out. ఈ ఏమి చేస్తుంది? STUDENT: గణిత లైబ్రరీ లింకులు. జాసన్ HIRSCHHORN: ఇది లింకులు గణిత లైబ్రరీ. మేము గణిత గ్రంధాలయం ఉన్నాయి, కానీ లేదు కనుక సాధారణంగా నుండి, వారు చేసిన వ్రాసిన తయారు ఎల్లప్పుడూ ఉన్నాయి గణిత లైబ్రరీ. మరియు అలాగే, ఈ కలిగి CS50 లైబ్రరీ. మేము జాబితా ఉంటే సరే, కాబట్టి, మేము ఇప్పుడు పరీక్ష అని ఒక ఎక్జిక్యూటబుల్. అది అమలు చేయడానికి, నేను పరీక్ష రాయడానికి. నేను, నా ఫ్లోటింగ్ పాయింట్ చూడండి అనుకున్న, 0 సమానం. ఆ చేస్తుంది - కాబట్టి - STUDENT: అప్పుడు మీరు ఉంచితే, ఇప్పుడు తేలుతూ మీరు ఫ్లోట్ గా నటింపజేయాలని - జాసన్ HIRSCHHORN: తారాగణం ఒక ఫ్లోట్ 1? ఎంత బాగా చేసినా పూర్తి వేసినను - అవును. మీరు చేస్తే, ఆ అది 0.1 తయారు? జాసన్ HIRSCHHORN: OK, నిజంగా త్వరగా, 1 10 ద్వారా విభజించబడింది, ఆ ఉంటాయి పూర్ణాంకాల విభజించబడుతుందో. మీరు పూర్ణ విభజించబడినప్పుడు కాబట్టి, వారు 0, మరియు మీరు సేవ్ చేస్తున్న 0 ఒక లో స్లాష్ ఎందుకంటే, తేలుతూ కేవలం పూర్ణాంక విభజన. కాబట్టి ఇప్పుడు మేము ఏదో చెయ్యడానికి చేస్తున్నారు ఫ్లోట్ లోకి. యొక్క ఏమి చూద్దాం. మేము పరీక్ష చేస్తాము. కాబట్టి ఇప్పుడు మేము ఆ స్లాష్ కాదని చూడండి పూర్ణాంక విభాగంలో, ఇది తేలుతూ పాయింట్ విభాగ. దీని అంశాల్లో ఒకటి ఒక ఫ్లోట్ వేయబడిందా. కాబట్టి ఇప్పుడు ఈ చికిత్స, పాకిపోయింది విభజన వ్యవహరించే చేస్తున్న వంటి ఫ్లోటింగ్ పాయింట్లు, కాదు పూర్ణ. కాబట్టి మేము ఆశించిన సమాధానం. యొక్క ఏమి చూద్దాం - అయ్యో. నేను మరింత దశాంశ ముద్రించడానికి కోరుకున్నారు మచ్చలు, నేను ఆ పని చేయడు? STUDENT: పాయింట్ డాట్ f, లేదా అనేక మీకు కావలసిన దశాంశ ప్రదేశాలు. జాసన్ HIRSCHHORN: నేను ప్రింట్ 10 దశాంశ మచ్చలు. మరియు మేము ఇప్పుడు మేము చేస్తున్నారు చూడండి కొన్ని విచిత్రమైన విషయం. మరియు ఆ తిరిగి మీ ప్రశ్నకు వెళుతుంది గురించి పాయింట్ imprecision తేలియాడే. ఇక్కడ నిల్వ విచిత్రమైన విషయం ఉంది. OK, మీ ప్రశ్నకు సమాధానం లేదు? మీరు ఏమి నచ్చిందా త్వరగా కోడ్ చేయడం? STUDENT: నేను లేదో చూడాలనుకుంటున్నాను కాదు, మీరు కొన్ని పాయింటర్ విముక్తి ఉంటే, ఆ పాయింటర్ ఇప్పటికీ నిల్వ అని అది అప్పటి చిరునామా గతంలో సూచించే. జాసన్ HIRSCHHORN: OK, కాబట్టి యొక్క ఆ తెలియజేసేలా. చార్ స్టార్ PTR, ఈ ఒక వేరియబుల్ సృష్టిస్తుంది రకం చార్ స్టార్ PTR అని. నేను malloc వ్రాస్తారా? అల్డెన్? ALDEN: జస్ట్ malloc. కానీ అది యొక్క పరిమాణం ఉండాలి, మరియు ఈ సందర్భంలో, నేను మీరు ఇష్టం అంచనా చార్ సూచించే. కనుక ఇది చార్ అంటాను. జాసన్ HIRSCHHORN: OK, ఎక్కువ సాధారణంగా, ఇన్సైడ్ - యొక్క సవరించడానికి అనుమతిస్తాయి. Malloc లోపలి మీరు అనేక కావలసిన యొక్క కుప్ప బైట్లు. సాధారణంగా, మేము ప్రధానంగా ఆ చూసిన చేయడం మేము malloc చూడాలని ఉంది ఉదాహరణకు తీగలను, లేదా పూర్ణాంకాల శ్రేణుల. కాబట్టి మేము 10 పూర్ణ, లేదా 10 కావాలా అక్షరాలు, 10 మాకు 10 ఇస్తుంది. ఆపై అక్షరాలు యొక్క పరిమాణం ఇచ్చి మాకు ఆ అక్షరాలు యొక్క పరిమాణం, దీనిలో ఈ సందర్భంలో 1 బైట్ ఉంది. మేము 10 బైట్లు పొందండి. మేము Int యొక్క పరిమాణం రాయడానికి ఉన్నాయి, ఉంటే మాకు 40 బైట్లు ఇచ్చి. కాబట్టి మరింత సామాన్యముగా, malloc లోపలి మీరు బైట్లు సంఖ్య. ఈ సందర్భంలో, మేము 1 బైట్ చేస్తున్నారు. ఒక విచిత్రమైన ఉపయోగం వంటి కనబడే malloc యొక్క, కానీ మా ప్రయోజనాల అర్ధమే. కాబట్టి ఆ ఉంది. మేము ఉచిత కాల్ చూడాలని. మేము అది వదిలించుకోవటం మరియు మేము తిరిగి PTR ఉపయోగించడానికి. మరియు మీరు తనిఖీ ఏమి చేశారు? STUDENT: నేను లేదో తనిఖీ కావలెను లేదా ఏదైనా ఉంది కాదు అది లోపలి. జాసన్ HIRSCHHORN: లేదో ఇది ఏదైనా మళ్లించాల్సిన? STUDENT: అవును, సరిగ్గా, లేదో ఇది ఇప్పటికీ ఒక మెమరీ చిరునామా కలిగి. జాసన్ HIRSCHHORN: కాబట్టి మీరు PTR విలువ తనిఖీ? STUDENT: అవును, సరిగ్గా. జాసన్ HIRSCHHORN: నేను ఇక్కడ ఏమి వ్రాస్తారా నేను విలువ తనిఖీ అనుకుంటే పాయింట్ - ఏమిటి, జోర్డాన్ విలువ, అన్నారు? లేదా ఏ PTR లోపలి నిల్వ? STUDENT: జ్ఞాపకం చిరునామా. జాసన్ HIRSCHHORN: జ్ఞాపకం చిరునామా. నేను ఈ వ్రాయడానికి కాబట్టి, అది చేస్తాము నాకు PTR విలువ ఇవ్వాలని. మరియు ఎలా నేను ప్రింట్ చెయ్యాలి ఒక మెమరీ చిరునామా? ఫార్మాట్ స్ట్రింగ్ ఏది ఒక మెమరీ చిరునామా కోసం? STUDENT:% p. జాసన్ HIRSCHHORN:% p. % S స్ట్రింగ్ ఉంది. పాయింటర్ కోసం% p. అవునా? ఆ హక్కు. కాబట్టి PTR సమానం - ఇప్పటికీ ఇది ఏదో ఉంది. ఈ బహుశా మరింత ఉంది ఆసక్తికరమైన ప్రశ్న. లైనును ఏమి చేస్తుంది? STUDENT: Seg లోపాలుగా. జాసన్ HIRSCHHORN: ఏమిటి? STUDENT: నేను లోపాలుగా seg అనుకుంటున్నాను. జాసన్ HIRSCHHORN: గతానుగతికం STUDENT: నేను seg తప్పు భావిస్తున్నాను. జాసన్ HIRSCHHORN: కాబట్టి ఈ లైన్ కోడ్, స్టార్ PTR, ఏమి స్టార్ అర్థం ఏమిటి? STUDENT: యొక్క కంటెంట్. జాసన్ HIRSCHHORN: అవును. కంటెంట్ పొందడానికి వెళ్ళండి. కాబట్టి ఈ మెమరీ వెళ్ళండి అన్నారు అక్కడ పార్వతీపురం నాకు ఇవ్వండి. నేను ఇక్కడే% సి ఉపయోగిస్తారు ఎందుకంటే అక్కడ అక్షరాలు అక్కడ నిల్వ ఉంటాయి. కాబట్టి మేము ఆ చిరునామా మేము వెళుతున్నాం ఇప్పుడు చూసిన - లేదా అది బహుశా ఒక ఉంటాం కొద్దిగా వివిధ ఈ మేము అమలు సమయం. కానీ మేము ఆ చిరునామా వెళ్తాను మేము ఇంకా ఉనికిలో తెలుసు ఇది మరియు అక్కడ ఏది చూడండి. కనుక ఇది seg తప్పు లేదు. ఇది కేవలం మాకు ఏదైనా ఇవ్వాలని లేదు. ఇది నిజానికి మాకు ఇచ్చిన ఉండవచ్చు ఏదో, మేము దానిని చూడలేరు. మరియు ఆ ఈ ఆలోచన వెళ్తాడు - మరియు మేము లోకి చాలా ఎక్కువ పొందగలిగిన లేదు ఈ, ఆ మించి ఎందుకంటే ఈ కోర్సు యొక్క పరిధిని. మేము అయితే మేము, ఇక్కడే గురించి మాట్లాడారు శ్రేణి యొక్క సరిహద్దులు దాటి వెళ్లారు 1, మేము ఇబ్బంది లేదు విధంగా. కొన్నిసార్లు, మీరు 1 రోడ్డు ఉన్నప్పుడు, మీరు ఏదో తప్పు చేస్తున్న ఇబ్బందుల్లో పొందుటకు కాలేదు. కానీ మీరు ఎప్పుడూ ఇబ్బందుల్లో పొందుటకు లేదు. ఇది ఆధారపడి ఉంటుంది ఎంత మంచిది యొక్క మీరు , మీరు ఇబ్బందుల్లో పొందడానికి వెళుతున్న లేదు. అలసత్వము ఉండాలి, చెప్పటానికి కాదు ఏ మీ కోడ్ తో. కానీ కార్యక్రమం లేదు, చెప్పబడినది మీరు పోయెదను కూడా ఎల్లప్పుడూ, విడిచి మీరు చేయాలో లేదు. ఆ ఒక మంచి ఉదాహరణ, చాలా ఉంది వారి సమస్య వ్యక్తులతో, 3 సెట్ ఇది 15, తనిఖీ లేదు జరిగినది బోర్డు యొక్క సరిహద్దులు. కాబట్టి మీరు నిలిపారు, ఎడమ నిలిపారు కుడి, చూసారు, టాప్ నిలిపారు దిగువ. కానీ మీరు చూడటానికి తనిఖీ లేదు టాప్ వాస్తవానికి బోర్డు మీద కానుంది. మరియు ఆ నేర్చుకున్న వ్యక్తుల చాలా మరియు ఆ మారిన, వారి కార్యక్రమం పని సంపూర్ణ, పేరు బోర్డు ఎందుకంటే మీరు ఒక వెళ్లి, మెమరీలో నిల్వ ఇది పైన లేదా తనిఖీ మెమరీ చిరునామా, ఏదైనా లేదు ఉంది గురించి ప్రత్యేకంగా భయంకరమైన, మీ ప్రోగ్రామ్, కాదు మీరు అరుస్తుంటారు అన్నారు. కానీ మేము ఇంకా పాయింట్లు టేకాఫ్ ఉంటే మీరు, అని తనిఖీ లేదు మీరు ఎందుకంటే మీరు కాదు ఏదో చేస్తున్న ఏమి చేయాలో, మరియు మీరు కలిగి సమస్యలకు ఉండాల్సిందని. ఆడ్స్ మీరు బహుశా కాదు, అయితే, ఉన్నాయి. కాబట్టి ఈ, అవును, ఆ ప్రదర్శిస్తాయి మేము ఇంకా వెళ్ళవచ్చు. మరియు మేము లో పొందడానికి లేదు ఈ సందర్భంలో ఇబ్బంది. మేము చదవడానికి చేయడానికి ప్రయత్నించాడు ఉంటే తదుపరి 100 అక్షరాలు, నడుమును బహుశా ఇబ్బందుల్లో పొందుటకు. మరియు మీరు తదుపరి 100 చదివిన కోడ్ చేయడం అక్షరాలు మీరు కొన్ని చేయడం ద్వారా కావాలా విధమైన లూప్. అవును. STUDENT: మేము కేటాయించబడ్డాయి తరువాత స్పేస్ ఒక వాస్తవ విలువ, మేము కాదు వాస్తవానికి ఏదైనా చూడగలరు. మేము సెట్ తో ప్రయత్నించాల్సిన సి లేదా ఏదో ఇష్టం సమానంగా? జాసన్ HIRSCHHORN: గ్రేట్ ప్రశ్న. నేను ఆ విలువ సెట్ చెయ్యాలి - ఏమి కోడ్ లైన్ నేను లైన్ వ్రాస్తారా ఏడు మీరు చెప్పాడు ఏమి? STUDENT: స్టార్ PTR ఒకే సమానం కోట్ ఒక కోట్ ముగింపు సి. జాసన్ HIRSCHHORN: కాబట్టి ఆ ఉంచడం ఒక పాత్ర, సి, ఆ స్థానాన్ని, ఎందుకంటే మళ్ళీ, ఆ స్టార్ అక్కడ వెళ్ళి అర్థం. మరియు ఎడమ చేతి వైపు వాడుతున్నప్పుడు ఒక కార్య ఆపరేటర్లు, ఆ సమానం సైన్, మేము పొందడానికి వెళుతున్న చేస్తున్నట్లు విలువ ఆ విలువ సెట్ వంటి చాలా. ఇప్పుడు ఏమి చూద్దాం. మేము అక్కడ ఏదో చాలు మరియు అది ఉంది. మేము ఉచిత అని. కొన్ని విషయాన్ని బహుశా జరిగిన కుప్ప. కనుక ఇది ఇకపై అక్కడ కాదు. కానీ మళ్ళీ, మేము పొందడానికి లేదు అక్కడ వెళ్తున్నారు కోసం ఇబ్బందుల్లో. నేను వర్ణించేందుకు కోడ్ లో ఈ చేస్తున్నాను ఈ చాలా మీరు ప్రశ్నలు, వారు నిజంగా ఆసక్తికరమైన సమయం జవాబులు. మరియు వారు నిజంగా మంచి ప్రశ్నలు ఉన్నారు. మరియు మీరు వాటిని గుర్తించడానికి మీ సొంత ఉంటే, ఉదాహరణకు, మేము విభాగంలో లేదు. అవును. STUDENT: మీరు పంపే లేదు ఎందుకంటే ఎక్కడైనా పాయింటర్, మీరు చేయాలి malloc ఉపయోగించవచ్చు? జాసన్ HIRSCHHORN: ఈ వెనక్కు మీ ప్రారంభ ప్రశ్నకు. [? ?] ఇది కేవలం ఒక స్థానిక వేరియబుల్? ఇక్కడ malloc ఉందనేందుకు కాదు. ఇక్కడ malloc ఉపయోగం కాదు ఇది ఎందుకంటే ఉందనేందుకు కేవలం ఒక స్థానిక వేరియబుల్. STUDENT: మీరు చార్ చేయగల స్టార్ PTR హలో సమానం? జాసన్ HIRSCHHORN: ఓహ్. కాబట్టి మేము ఇప్పుడు తిరిగి పొందడానికి వెళుతున్న మీ ప్రారంభ ప్రశ్నకు. నేను మీరు సంతృప్తి కాదు అనుకుంటున్నాను నా మనసు. OK? ఆ వంటి? STUDENT: అవును. వేచి. జాసన్ HIRSCHHORN: మరియు పేరు మీరు ప్రింట్ అనుకుంటున్నారు? కాబట్టి మేము ఆ వంటి స్ట్రింగ్ ప్రింట్ చేస్తాము? STUDENT: ఆసక్తికరమైన. జాసన్ HIRSCHHORN: సో ఈ చెప్పారు ఆర్గుమెంట్ పాత్ర రకం ఉంది. కాబట్టి ఈ ఒక అక్షరం. STUDENT: కేవలం ఒక పడుతుంది. జాసన్ HIRSCHHORN: ఈ నేను ముందు చెప్పారు ఏమిటి. ఇలా నేను నిల్వ కాదు, అన్నారు వేరియబుల్ పాయింటర్ లోపల స్ట్రింగ్. ఇది నిల్వ - STUDENT: మొదటి విలువ స్ట్రింగ్ యొక్క. జాసన్ HIRSCHHORN: చిరునామా స్ట్రింగ్ మొదటి విలువ. మేము ఈ ముద్రించడం ఉన్నాయి, మేము ఉన్నాము పాయింటర్ లోపల విలువ. మరియు మేము, నిజానికి, ఉంది చూస్తారు ఒక మెమరీ చిరునామా. అర్ధవంతం లేదు? క్షమించాలి. మీ జవాబిస్తాడు, వేచి ప్రశ్న, అయితే? STUDENT: అవును. జాసన్ HIRSCHHORN: కోడ్ యొక్క ఈ లైన్ ఒక స్ట్రింగ్ మరియు వేరొక సృష్టించడం పై చేసే వేరియబుల్ పాయింటర్ ఆ స్ట్రింగ్, ఆ శ్రేణి. అవును. మేము ఒక మెమరీ బోయిరి ఉంటే: STUDENT మరింత పరిష్కరించేందుకు, మేము h జరుగుతుందని? ఇది ఒక స్ట్రింగ్ వంటి నిల్వ ఉంది? జాసన్ HIRSCHHORN: వలె, మేము - కాబట్టి దీన్ని విలువైనది. ఈ పాయింట్ గణిత, ఇది మీరు అబ్బాయిలు ఉంది ముందు చూసిన మరియు ఉండాలి తో చాలా సౌకర్యంగా. ఈ రచన పోలి ఉంటుంది - మేము కోడ్ యొక్క ఈ లైన్ రాయడానికి ఉన్నాయి, ఉంటే మేము ముందు శ్రేణి సంజ్ఞామానం చూసిన. ఈ సెకండ్ ఇవ్వాలి ఈ శ్రేణి, h విలువ. మేము ఈ చేశాడు, ఈ కూడా ఇవ్వాలి మాకు ఆ శ్రేణి లో రెండవ విలువ. ఇది మెమరీ లేదు అన్నారు ఎందుకంటే మొదటి విషయం యొక్క చిరునామా, కానీ పైగా విషయం యొక్క మెమరీ చిరునామా. ఆపై స్టార్ ఆపరేటర్లు dereferences ఆ పాయింటర్. మరియు తిరిగి, యొక్క చూసేలా. మేము మళ్ళీ h పొందండి. STUDENT: సరిగ్గా అదే అర్థం dereference? జాసన్ HIRSCHHORN: dereference వెళ్ళండి కోసం ఒక ఫాన్సీ పదం. ఆ వెళ్ళి ఏమి పొందండి ఒక పాయింటర్ dereference ఉంది. ఇది ఆ కోసం ఒక ఫాన్సీ పదం. మేము ప్రింట్ కోరుకున్నాడు ఉంటే: STUDENT మొత్తం స్ట్రింగ్, అనుకొనుట మేము ఏంపర్సెండ్ పాయింటర్ చేయండి? జాసన్ HIRSCHHORN: OK, మేము ఇక్కడ విరామం అవకాశముంది. మేము ఇక్కడ ముగిసింది వెళ్తున్నారు. ఎమ్పారసన్డ్ మీరు ఒక యొక్క చిరునామా ఇస్తుంది నగర, ఆలాగైతే మీరు ఆంపర్సండ్ చిహ్నం ఒక వేరియబుల్, మీరు చిరునామా ఇస్తుంది ఆ వేరియబుల్ నిల్వ. ఎమ్పారసన్డ్ పాయింటర్ మీరు ఇస్తుంది PTR మెమరీలో ఉన్న PTR యొక్క చిరునామా. మేము వెళ్ళి వెళ్ళి లేదు ఈ ఉదాహరణ. మీరు ఈ గుర్తించడానికి మీ స్వంత విషయాలు. కానీ మళ్ళీ, ఈ ఒక verging ఉండవచ్చు మీరు తెలుసుకోవలసినది దాటి బిట్ ఈ మధ్య కాల పరిధికి - లేదా ఈ క్విజ్, కాకుండా. క్షమించాలి. నేను ఎందుకంటే మేము, న తరలించడానికి వెళ్తున్నారు ఒక కోడింగ్ సమస్య చేయాలని సమయం కంటే ముందే. మరియు మేము నేను ఏమి కోడ్ వెళ్తున్నారు వీటిలో అతి బలవంతంగా ఉంది ఉదాహరణలు, atoi. ఈ న ఒక ప్రశ్న రెండు సంవత్సరాల క్రితం ఒక క్విజ్. నేను ఇక్కడ బోర్డు కలిగి. ప్రజలు క్విజ్ లో అడిగారు - వారు కొంచెం tesxt ఇవ్వబడింది ప్రశ్న, కానీ నేను తొలగించబడుతుంది అది అవసరం ఉంది టెక్స్ట్ ఎందుకంటే ఇప్పుడు మా ప్రయోజనాల కోసం. ఇది కేవలం కొంత నేపథ్య ఉంది ఏమి atoi న. కానీ మీరు అన్ని తెలిసిన మరియు చాలా atoi తెలిసిన. నేను మీరు ఈ కోడ్ సూచిస్తున్నాయి కాగితం ఒక షీట్ మీద. నేను కూడా మీరు వ్యూహం ఉపయోగించే సూచించారు మేము మారారు మా విభాగంలో చాలా. మొదటి, మీరు ఇంతలా ఏమి atoi యొక్క చేయడం. ఒక చిత్రాన్ని గీయండి లేదా కొన్ని ఆలోచన మీ తల లో మానసిక చిత్రం. తదుపరి, ఈ కోసం pseudocode వ్రాయండి. క్విజ్, మీరు పొందుటకు అన్ని ఉంటే pseudocode, కనీసం మీరు ఏదో అణిచివేసేందుకు. ఆపై పై ఆ pseudocode మ్యాప్ C. మీరు ఒక చెక్ ఉంటే మీ pseudocode, వంటి గమనించినట్లయితే ఏదో 1, ఒక ఉంటే పై పటాలను ఉంది మొదలగునవి పరిస్థితి మరియు. చివరకు, C. లో కార్యక్రమం కోడ్ కాబట్టి తిరిగి atoi వెళ్లి ఐదు నిమిషాల సమయం ఒక షీట్ మీద ఈ సంకేతానికి గురించి బహుశా ఇది కాగితం, మీరు ఒక న పడుతుంది సమయం కోడ్ atoi క్విజ్. ఐదు నుండి 15 నిమిషాలు, ఐదు ఐదు, 12 10 నిమిషాల, మొత్తం యొక్క గురించి మీరు ఈ ఖర్చు ఇష్టం సమయం క్విజ్ ప్రశ్నను. కాబట్టి, ఇప్పుడు ఐదు నిమిషాలు దయచేసి పడుతుంది. మరియు మీరు ఏవైనా ప్రశ్నలు ఉంటే, పెంచడానికి మీ చేతి మరియు నేను చుట్టూ వచ్చి చేస్తాము. [ప్రక్క సంభాషణ] జాసన్ HIRSCHHORN: OK, ఆ ఐదు నిమిషాలు ఉంది. ఆ మొత్తం గురించి బహుశా మీరు, ఒక క్విజ్ లో ఆ ఖర్చు ఇష్టం ఆ సమయంలో బహుశా తక్కువ. మేము ఒక బిట్ లో పునశ్చరణ చేస్తాము. ఈ కోడింగ్ ప్రారంభిద్దాం. మరియు మేము అన్ని మార్గం ద్వారా పొందలేము ఉంటే, ఈ సమాధానాలు మరియు ఈ క్విజ్ ప్రశ్న మళ్ళీ, అందుబాటులో ఉన్నాయి, పతనం 2011 ఈ ఉన్నప్పుడు ప్రశ్న క్విజ్ కనిపించింది. మరియు అది ఎనిమిది పాయింట్లు విలువ క్విజ్ లో అప్పుడు. ఎనిమిది పాయింట్లు అధిక ముగింపు ఉంది పాయింట్లు ఏదో మొత్తం ఉంటే విలువ. చాలా ప్రశ్నలకు పరిధిలో ఒక ఆరు పాయింట్లు. కాబట్టి ఈ మరింత సవాలు ఉంది ఖచ్చితంగా ప్రశ్న,. నాకు ఎవరైనా ప్రారంభించవచ్చు? సాధారణంగా, మేము వెళ్తున్నారు ఈ చేయాలనుకుంటున్నారా తార్కికంగా, atoi పని? మనం చెయ్యాలనుకుంటున్నారు? కాబట్టి మేము ఎలా రాయాలో కొన్ని pseudocode. STUDENT: అక్షరాలు మార్చు పూర్ణాంకాల లోకి. జాసన్ HIRSCHHORN: అక్షరాలు మార్చు పూర్ణాంకాల లోకి. OK. కాబట్టి ఎన్ని అక్షరాలు మేము ద్వారా వెళ్ళడానికి అవసరం అన్నారు? STUDENT: వాటిని అన్ని. STUDENT: అన్ని అక్షరాలు స్ట్రింగ్ లో. జాసన్ HIRSCHHORN: అన్ని స్ట్రింగ్ లో అక్షరాలు. మేము ప్రతి ద్వారా వెళ్ళి కోరుకున్నారు ఉంటే ఒక స్ట్రింగ్ లో పాత్ర, ఒక విషయం ఏమిటి సి లో మేము అనుమతించింది చూసిన మాకు ప్రతి ద్వారా వెళ్ళడానికి ఒక స్ట్రింగ్ లో పాత్ర? విద్యార్థులు: లూప్ ఒక. జాసన్ HIRSCHHORN: లూప్ ఒక. కాబట్టి మేము ద్వారా లూప్ చూడాలని లు లో ప్రతి పాత్ర. అప్పుడు మనం చేయాలనుకుంటున్నారా వెళ్తున్నారు మేము ఒక నిర్దిష్ట వచ్చినప్పుడు? మేము ఒక 90 జారీ చేస్తున్నారు సే. మేము 9 పొందండి. ఇది ఒక పాత్ర. మనం తో చెయ్యాలనుకుంటున్నారు ఆ పాత్ర 9? STUDENT: పాత్ర 0 నుంచి తీసివేయండి? STUDENT: 0 జోడించండి? జాసన్ HIRSCHHORN: తీసివేయి పాత్ర 0 నుండి? STUDENT: అవును. జాసన్ HIRSCHHORN: ఎందుకు చేయండి మీరు ఆ చేయాలనుకుంటున్నారా? STUDENT: [వినబడని] విలువ. దీని Int విలువ. జాసన్ HIRSCHHORN: OK, మేము పడుతుంది పాత్ర 9, నుండి వ్యవకలనం పాత్ర 0 ఒక పొందడానికి అసలు పూర్ణాంక 9. స్వీట్. మరియు ఎలా మీరు ఆ పాత్ర తెలుసు 9 0 మైనస్ పాత్ర 9 ఉంది? మీరు ఏ చార్ట్ చూడండి లేదు? STUDENT: తొమ్మిది తార్కికంగా ఉన్నాయి 9 మరియు మధ్య 0 ప్రదేశాలు. లేదా మీరు ASCII పట్టిక చూడండి కాలేదు. జాసన్ HIRSCHHORN: ASCII పట్టిక. అయితే, మీరు సరైన ఉన్నారు. కాబట్టి మేము 0 వ్యవకలనం. కాబట్టి ఇప్పుడు మేము పూర్ణాంక 9 ఉన్నాయి. మరియు మేము ఆ చెయ్యాలనుకుంటున్నారు? మేము 90 కలిగి ఉంటే, అది మొదటి పూర్ణాంక మేము, మేము ఏమి అనుకుంటున్నారు చేశారు? STUDENT: నేను ఒక తాత్కాలిక పూర్ణాంక లో చాలు ఇష్టం శ్రేణి, దానికి గణిత తరువాత అంతం చేయడానికి. జాసన్ HIRSCHHORN: OK. STUDENT: మీరు చివరిలో ప్రారంభించవచ్చు శ్రేణి మరియు ముందుకు మీరు ముందుకు ప్రతిసారీ, మీరు 10 ద్వారా గుణిస్తారు. జాసన్ HIRSCHHORN: OK. ఒక అందమైన లాగా సమగ్ర ఆలోచన. మేము మా శ్రేణి ముగింపు ప్రారంభించవచ్చు, మరియు మేము strleng ఉపయోగించవచ్చు. మేము ఇక్కడ strleng ఉపయోగించవచ్చు. మేము మా స్ట్రింగ్ యొక్క పొడవు పొందుతారు. మేము చివరిలో ప్రారంభించడానికి. మరియు + మొదటి ఒక మేము కేవలం కేటాయించడం పూర్ణాంక, మరియు బహుశా మేము ఒక వంటి సృష్టించడానికి కొత్త పూర్ణాంక వేరియబుల్ టాప్ పేరు మేము ప్రతిదీ నిల్వ చేస్తున్నారు. నుండి లు లో ప్రతి చార్ ద్వారా కాబట్టి మేము లూప్ తిరిగి ముందు, మేము 0 వ్యవకలనం, మరియు అప్పుడు మేము దాని పట్టుకొని బట్టి ఇక్కడ, మేము గుణిస్తారు 10 యొక్క శక్తి ద్వారా. ఎందుకంటే మొదటి ఒకటి, మనం కుడివైపు పాత్ర ద్వారా గుణిస్తారు? STUDENT: 0 10. జాసన్ HIRSCHHORN: 0 10. మేము ఏ రెండవ గుణించండి కుడివైపు పాత్ర ద్వారా? STUDENT: [వినబడని]. జాసన్ HIRSCHHORN: ఏమిటి? STUDENT: 1 10. జాసన్ HIRSCHHORN: 1 10. మూడవ కుడివైపు పాత్ర? STUDENT: 2 10. జాసన్ HIRSCHHORN: 2 10. STUDENT: క్షమించండి, నేను అర్థం లేదు మేము ఇక్కడ చేస్తున్నా. జాసన్ HIRSCHHORN: OK, అప్పుడు, తిరిగి వీడలేదు. కాబట్టి మేము పొందడానికి వెళుతున్న ఒక స్ట్రింగ్, జారీ. మేము atoi రాస్తున్నాం ఎందుకంటే. కాబట్టి మేము ఒక స్ట్రింగ్ లో జారీ పొందుతారు. మేము ఆమోదించిన చేస్తున్నారు సే స్ట్రింగ్ 90 లో. మేము చేయబోతున్నామని మొదటి విషయం సెట్ మేము ఒక కొత్త పూర్ణాంక వేరియబుల్ కేవలం సృష్టించబోతున్నాను మా కొత్త పూర్ణాంక వంటి. మేము వెళుతున్న ఏమిటి చివరిలో తిరిగి. మేము ప్రతి పాత్ర ద్వారా వెళ్లాలి స్ట్రింగ్ మేము కనుగొన్నాము ఎందుకంటే మేము ప్రతి ఒక టచ్ అవసరం మరియు ఆ అప్పుడు మా కొత్త పూర్ణాంక జోడించి. కానీ మేము కేవలం ఒక సంఖ్య ఇది ​​చేర్చలేరు. మేము కేవలం 9 తీసుకొని కాదు మా పూర్ణాంక 9 జోడించండి. ఇది ఏమి స్థానంలో ఆధారపడి ఇది స్ట్రింగ్ లో ఉంది. మేము గుణిస్తారు అవసరం చూడాలని ఇది 10 ఒక శక్తి ద్వారా. ఆ కారణంగా ఎలా బేస్ 10 రచనలు. కాబట్టి మేము వాస్తవ పొందడానికి వెళుతున్న పాత్ర, లేదా అసలు పూర్ణాంక సంఖ్య, పాత్ర 0 తీసివేయడం ద్వారా పాత్ర 9 మేము చేశాడు నుండి నుండి పాత్ర రాజధాని A తీసివేయడం మేము ఒకటి లో ఏ పాత్ర ఆ సమస్యలను. మేము నిజంగా 0 నుండి అనేక పొందుతారు 9 నిజమైన సంఖ్య సేవ్, మరియు మేము చేస్తాము ఆధారపడి 10 ఒక శక్తి ద్వారా గుణిస్తారు మేము స్ట్రింగ్ లో ఎక్కడ న. మరియు తర్వాత మేము మళ్ళీ జోడించండి చూడాలని మా కొత్త పూర్ణాంక వేరియబుల్. కాబట్టి ఈ చేస్తాను ఇలా ఉంటుంది మేము ఇక్కడ పైగా డ్రా చేస్తాము - అని. మేము స్ట్రింగ్ 90 జారీ కలిగితే - STUDENT: [వినబడని]. జాసన్ HIRSCHHORN: కానీ atoi ఒక స్ట్రింగ్ తీసుకుని. కాబట్టి మేము ద్వారా వెళ్ళి చూడాలని హోల్డింగ్. మేము 90 జారీ పొందుతారు. మేము వెనుక నుండి వెళ్ళి. మేము 0 పడుతుంది. STUDENT: క్షమించండి. బహుశా ఈ స్టుపిడ్. మేము ఒక స్ట్రింగ్, జారీ పొందుతుంటే, ఎందుకు మేము ఏ 90 ఉంది జారీ విధానం? 90 పూర్ణాంకం ఎందుకంటే. జాసన్ HIRSCHHORN: atoi ఒక ఉండడంతో స్ట్రింగ్ మరియు పూర్ణాంకం మారుతుంది ఆ స్ట్రింగ్ ప్రాతినిధ్యం. కానీ స్ట్రింగ్ 90 పూర్ణాంక 90 లేదా సంఖ్య 90. స్ట్రింగ్ 90 ఒక రెండు శ్రేణి, లేదా ఉంది మూడు అక్షరాలు కాకుండా, 9 పాత్ర 0 పాత్ర, మరియు బాక్ స్లాష్ 0 పాత్ర. మరియు మేము ఎందుకంటే, కోసం atoi రాస్తున్నాం ఉదాహరణకు, మీరు ఆదేశ తీసుకోవడం లైన్ వాదన, మరియు అది లో సేవ్ argv, ఇది ఒక స్ట్రింగ్ వంటి సేవ్. కానీ మీరు అనేక వంటి చికిత్స అనుకుంటే, మీరు ఒక మార్పు అవసరం అసలు పూర్ణాంక. ఏ మేము మా సమస్య సెట్లు ఒక చేశాడు. మేము అనేక ఉపదేశాలిచ్చారు మా సమస్య సెట్లు. పూర్ణాంకం పట్టింది అందరూ ఒక కమాండ్ లైన్ వాదన గా. కాబట్టి ఆ ఎందుకు మా atoi ఫంక్షన్ ఒక స్ట్రింగ్ తీసుకుని. మరలా, ఇక్కడ మా ఉదాహరణ లో, మేము చివరి తీసుకుంటున్నానని. మేము పాత్ర వ్యవకలనం చూడాలని దాని నుండి 0, ఎందుకంటే అక్షరాలు 0 పాత్ర 0 ద్వారా తీసివేయటం మీరు ఇస్తుంది ప్రకారం వాస్తవ సంఖ్య 0, మేము ఆ ASCII మఠం. అక్షరాలు వంటి ప్రాతినిధ్యం ఎందుకంటే వారి అసలు కంటే వివిధ - పాత్ర ఒక, ఉదాహరణకు, చిన్న ఒక 97 ఉంది. ఇది కాదు - అయ్యో! ఇది మీరు ఆశించిన ఏ కాదు ఇది ఉదాహరణకు,, 0 ఉండాలి. కాబట్టి మీరు వ్యవకలనం ఉన్నాయి పాత్ర ఒక 0 పొందడానికి. కాబట్టి మేము ఇక్కడ ఆ చేయబోతున్నామని వాస్తవ సంఖ్య పొందడానికి. మరియు తర్వాత మేము ద్వారా గుణిస్తారు వెళ్తున్నారు 10 యొక్క శక్తి ఇక్కడ బట్టి స్ట్రింగ్ లో ఉంది, మరియు ఆ పడుతుంది మరియు మా స్థానంలో ఉన్నవారు జోడించి వేరియబుల్ కాబట్టి మేము ఆలోచన మా చివరి కొత్త పూర్ణాంక. అని అందరికీ అర్ధమే లేదు? కాబట్టి మేము ఈ కోడ్ వెళ్ళి లేదు ప్రస్తుతం, ఎందుకంటే మేము ఉన్నాము సమయం తక్కువగా పొందడానికి. నేను ఆ సమయం చింతిస్తున్నాము. కానీ ఈ ఏమి, ఆశాజనక, మీరు ఉంది వద్ద - క్విజ్ లో చేస్తామని చాలా కనీసం, ఈ pseudocode పొందండి బయటకు రాసిన. ఆపై, మేము అయితే రాయడానికి pseudocode, నిజానికి, మేము ఈ చేయగల అందంగా త్వరగా. మేము రాశారు వ్యాఖ్యలు ప్రతి లైన్ ఇక్కడ గురించి అనువాదం సి కోడ్ ఒకటి లైన్. ఒక కొత్త కారకం, రచన ప్రకటించారు ఒక లూప్, కొన్ని తీసివేత, కొన్ని గుణకారం, మరియు కొన్ని అప్పగించిన. మేము బహుశా కూడా ఇష్టం తిరిగి లైన్ వ్రాయండి. మేము కూడా ఉంచాలి కావలసిన ఉండవచ్చు ఇక్కడ కొన్ని తనిఖీలను. అవును. STUDENT: కాబట్టి మేము చికిత్స చేయవచ్చు అసలు స్ట్రింగ్ వంటి లు? నేను తెలుసు ఎందుకంటే కేవలం ఒక చిరునామా ఉంది. వంటి, ఎలా మీరు పొడవు పొందుతారు స్ట్రింగ్ ద్వారా జారీ చేస్తున్నారు? జాసన్ HIRSCHHORN: కాబట్టి ఎలా ఒక స్ట్రింగ్ యొక్క పొడవు? Strlen. STUDENT: strlen, అవును. కానీ మీరు లు ఉంచవచ్చు ఆ కోసం వాదన? జాసన్ HIRSCHHORN: కాబట్టి strlen ఒక చార్ స్టార్ పడుతుంది. మరియు ఆ చార్ స్టార్ క్రింది, మరియు ఇది ఇది ఒక పొందేంత వరకు లెక్కింపు ఉంచుతుంది బాక్ స్లాష్ 0. strlen వాస్తవాని ఇతర కార్యక్రమాలు ఒకటి మేము కోడ్ ఉండేవి. ఆ కోడ్ చేతిలోపదునైన ఒకటి. ఒక, ఒక బిట్ సులభం ఎందుకంటే మీరు ఆ గురించి మాటలకి సందర్భానుసారంగా - నేను బిగ్గరగా చెప్పితిననెను - strlen క్రింది ఒక పాయింటర్ మరియు ఉంచుతుంది వెళ్లి లెక్కింపు మరియు వరకు పర్యవేక్షించే మీరు ఒక బాక్ స్లాష్ 0 చేరుకోవడానికి. STUDENT: సరే, అర్థమైంది. జాసన్ HIRSCHHORN: సో ఉత్తమ క్విజ్ 0 రేపు అదృష్టం. మీరు ఏవైనా ప్రశ్నలు ఉంటే, నేను చేస్తాము ఈ తరువాత బయట. నాకు ఇమెయిల్ సంకోచించకండి. మీరు తెలియకపోతే మీ స్వంత TF చేరుకునేందుకు నా విభాగంలో, లేదా పొందుటకు నా అది మీకు ఇమెయిల్. మీరు ఫ్రీక్ మీరు మరియు కేవలం పంపితే ఒక ఇమెయిల్, ఒక freakout ఇమెయిల్, నేను చేస్తాము , ఒక స్మైలీ ముఖం, వంటి, తిరిగి పంపడానికి లేదా, వంటి, ఒక జోక్ లేదా ఏదో. కాబట్టి అలాగే అలా సంకోచించకండి. అదృష్టం మళ్ళీ, మరియు నేను చేస్తాము అన్ని వచ్చే వారం మీరు చూడండి.