[సంగీతాన్ని] [వీడియో ప్లేబ్యాక్] -అతను అబద్ధం. -దేని గురించి? -I తెలియదు. మేము ఏమి తెలుసు సో? 9:15, రే వద్ద -ఆ Santoya ATM వద్ద ఉంది. అవును. హరిబాబు, ఏమి అతను 9:16 వద్ద ఏమి ఉంది? ఏదో 9 మిల్లీ -Shooting. బహుశా తాను స్నిపర్ చూసింది. -లేదా అతనితో పని. -Wait. తిరిగి ఒక వెళ్ళండి. -మీరు ఏమి చూస్తారు? పూర్తి స్క్రీన్ తన ముఖం -Bring. -His అద్దాలు. ప్రతిబింబం-ఉంది. -ఇది న్యువిటాస్ బేస్బాల్ జట్టు. వారి లోగో ఉంది. -మరియు అతను మాట్లాడుతూ ఉంటాడు ఎవరైతే ఆ జాకెట్ వేసుకొని. [END ప్లేబ్యాక్] DAVID మలన్: అన్ని కుడి. ఈ CS50 ఉంది మరియు ఈ ఒక బిట్ మరింత ఉంది [వినబడని] ఇది మీకు ఉన్నాము సమస్యను dabbling నాలుగు సెట్. ఈ రోజు మనం కొంచెం చూడండి ప్రారంభించండి లోతుగా గమనికలు అని ఈ విషయాలు, అంతే అయినప్పటికీ ఒక అందమైన అద్భుత టాపిక్ అది జరగబోతోంది ఆ అవుతుంది సాధనంగా మనం నిర్మాణం మరియు చేరడం ప్రారంభించడానికి చేయవచ్చు మరింత అధునాతన కార్యక్రమాలు. కానీ మేము గత బుధవారం చేసియున్నారు మొదటి కొన్ని క్లేమాషన్గా ద్వారా పరిష్కరించవచ్చు. కాబట్టి ఈ, రీకాల్, ఉంది Binky మరియు మేము అతనికి ఉపయోగిస్తారు ఒక ప్రోగ్రామ్ పరిశీలించి ఆ నిజంగా ఏదైనా ఆసక్తికరమైన ఆడలేదు, కానీ కొన్ని సమస్యలు బహిర్గతం చేసింది. సో ఎందుకు మేము నడిచి లేదు, నేడు ప్రారంభించడానికి త్వరగా ఈ దశలను కొన్ని ద్వారా, మానవ యొక్క నిబంధనలు పరిశుద్ధం ప్రయత్నించండి వేటి ఇక్కడ జరగబోతోంది మరియు ఎందుకు ఈ చెడు, మరియు అప్పుడు కొనసాగండి మరియు నిజానికి ఏదో నిర్మించడాన్ని ప్రారంభించడానికి ఈ టెక్నిక్ తో? కాబట్టి ఈ మొదటివారు ఈ కార్యక్రమంలో రెండు పంక్తులు మరియు లేమాన్ నియమాలు, ఏమి ఈ రెండు పంక్తులు చేస్తున్నారు? సహేతుక సౌకర్యవంతమైన ఎవరు ఎవరో ఏమి తెరపై ప్రకటించబడిన తో? చేయడం ఈ రెండు పంక్తులు ఏమిటి? ఇది అన్ని కాదు వారం నుండి వివిధ, కానీ కొన్ని కొత్త ప్రత్యేక చిహ్నం ఉంది. అవును? తిరిగి అక్కడ. ప్రేక్షకులు: గమనికలు ప్రకటించారు? DAVID మలన్: మళ్ళీ సే? ప్రేక్షకులు: గమనికలు ప్రకటించారు? DAVID మలన్: ప్రకటిస్తూ గమనికలు మరియు లెట్ యొక్క కొద్దిగా ఎక్కువ శుద్ధి వీలు. ప్రేక్షకులు: [వినబడని] చిరునామా x మరియు y అప్పుడు. DAVID మలన్: ఆపై పరిష్కరించడానికి. సో ప్రత్యేకంగా మేము చేస్తున్న ఏమి మేము రెండు వేరియబుల్స్ డిక్లేర్ ఉంటాయి. ఈ చరరాశులు, అయితే, వెళ్తున్నారు రకం Int నక్షత్రం యొక్క ఉండాలి ఇది మరింత ప్రత్యేకంగా అర్థం వారు నిల్వ వెళ్తున్నారు ఒక పూర్ణాంకానికి యొక్క చిరునామా వరుసగా, x మరియు y. ఇప్పుడు ఏ విలువలు ఉన్నాయి? ఈ లో ఏదైనా వాస్తవిక చిరునామాలను ఉన్నాయి సమయం లో ఈ సమయంలో రెండు వేరియబుల్స్? నం ఇది కేవలం చెత్త విలువలు పిలవబడే లో. మీరు అసలైన కేటాయించి లేకపోతే RAM లో కూతుళ్ళు వేరియబుల్, గతంలో సున్నాలు నిండిపోయి అన్నారు మరియు వాటిని ఆ రెండు వేరియబుల్స్. కానీ మేము ఇంకా తెలియదు వారు ఏమి మరియు ఆ ఎందుకు Binky కీ అవతరిస్తుంది గత వారం తన తల కోల్పోయింది. కాబట్టి ఈ క్లేమాషన్గా ఉంది ఈ అవతారాన్ని అనగా మీరు కేవలం రెండు వేరియబుల్స్ ఉన్నాయి మట్టి కొద్దిగా వృత్తాకార ముక్కలు, ఆ వేరియబుల్స్ నిల్వ కానీ చేయవచ్చు ముగిస్తుంది బాణాలు సూచిస్తున్నాయి, వారు నిజానికి గురిపెట్టి చేస్తున్నారు ఎక్కడైనా కేవలంగా పిలుస్తారు. కాబట్టి అప్పుడు మేము ఈ లైన్ కలిగి, మరియు ఈ మెమరీ కోసం నూతన గత వారం, malloc కేవలం ఒక ఫాన్సీ మార్గం ఇది కేటాయింపు, ఆపరేటింగ్ సిస్టమ్ చెప్పుచున్నారు, Linux యొక్క లేదా Mac OS లేదా Windows, హే, నాకు కొన్ని మెమరీ ఇవ్వాలని, మరియు మీరు అన్ని చెప్పడం ఆపరేటింగ్ సిస్టమ్ మెమరీ కోసం అడుగుతూ చేసినప్పుడు ఏమిటి. ఇది ఏమి పట్టించుకోను మాత్రం కాదు మీరు దానిని చేయబోతున్నామని కానీ మీరు ఆపరేటింగ్ చెప్పడం అవసరం లేదు malloc ఏమి ద్వారా వ్యవస్థ. అవును? ప్రేక్షకులు: ఎంత? DAVID మలన్: ఎంత? ఎంత బైట్లు, అందువలన, ఈ, మళ్ళీ, ఒక కంట్రైవ్డ్ ఉదాహరణకు, కేవలం చెబుతున్నారు నాకు ఒక పూర్ణాంకానికి యొక్క పరిమాణం ఇస్తుంది. ఒక పూర్ణాంకానికి యొక్క ఇప్పుడు, పరిమాణం నాలుగు బైట్లు లేదా 32 బిట్స్ ఉంది. కాబట్టి ఈ కేవలం ఒక మార్గం ఉంది మాట్లాడుతూ, హే, ఆపరేటింగ్ సిస్టమ్, నాకు మెమరీ నాలుగు బైట్లు ఇవ్వాలని నేను నా పారవేయడం వద్ద ఉపయోగించే, మరియు ప్రత్యేకంగా, దేనిని గౌరవం తో malloc తిరిగి నాలుగు బైట్లు ఆ భాగం ఎలా? ప్రేక్షకులు: చిరునామా? DAVID మలన్: చిరునామా. నాలుగు బైట్లు ఆ భాగం యొక్క చిరునామా. సరిగ్గా. అందువలన, చివరికి నిల్వ ఏమిటి మేము నిజంగా ఎందుకు x మరియు ఆ జాగ్రత్త వహించే ఆ సంఖ్య ఇది ox1 లేదా ox2 అయినా చిరునామా, ఉంది లేదా కొన్ని నిగూఢ హెక్సాడెసిమల్ చిరునామా. మేము కేవలం చిత్రాల శ్రద్ధ ఆ వేరియబుల్ x ఇప్పుడు మెమరీ యొక్క భాగం గురిపెట్టి. కాబట్టి బాణం ఒక పాయింటర్ సూచిస్తుంది, లేదా మరింత ప్రత్యేకంగా, ఒక మెమరీ చిరునామా. కానీ మళ్ళీ, మేము సాధారణంగా పట్టించుకోను ఆ వాస్తవ చిరునామాలను ఏమిటో. ఇప్పుడు, ఈ లైన్ చెప్పారు ఏమి లేమాన్? స్టార్ x 42 సెమికోలన్ గెట్స్. దీని అర్థం ఏమిటి? మీరు వెళ్ళి వన్నా? మీ మెడ గీతలు లేదు. ప్రేక్షకులు: x యొక్క చిరునామా 42 వద్ద ఉంది. DAVID మలన్: x యొక్క చిరునామా 42 వద్ద ఉంది. దాదాపు. కాబట్టి దగ్గరగా, కానీ చాలా ఉంది ఎందుకంటే ఈ x ముందు ఆ స్టార్. కాబట్టి మేము కొద్దిగా సర్దుబాటు అవసరం. అవును? ప్రేక్షకులు: విలువ ఆ పాయింటర్ x 42 కు సూచిస్తుంది. DAVID మలన్: సరే. పాయింటర్ x అని విలువ 42 ఉంటుంది, యొక్క అని పిలవబడు వలెను గురిపెట్టి, లేదా, స్టార్ మరొక విధంగా ఉంచండి x సంసార చిరునామా వెళ్ళండి చెప్పారు 1 ఆక్స్ఫర్డ్ అయినా, x లో ఉంది స్ట్రీట్ లేదా 33 ఆక్స్ఫోర్డ్ స్ట్రీట్ లేదా ox1 లేదా ox33, సంసార , సంఖ్యా చిరునామా అని స్టార్ xx యొక్క dereferencing ఉంది. కాబట్టి ఆ చిరునామాకు వెళ్ళి అప్పుడు అక్కడ 42 చాలు. కాబట్టి ఆ ఉంటుంది ఒక చెప్పి సమానమైన మార్గం. కాబట్టి అన్ని మంచిది ఆపై మేము చిత్రాన్ని ప్రాతినిధ్యం వహించే మేము ఈ విధంగా జోడించిన నాలుగు ఆ భాగం 42 కుడి వైపు బైట్లు కానీ విషయాలు వంకరైన జరిగింది ఇక్కడ లైన్ ఉంది మరియు Binky యొక్క తల popped ఈ సమయంలో ఆఫ్, చెడు విషయాలు ఉన్నప్పుడు జరిగే ఎందుకంటే మీరు చెత్త విలువలు dereference చెల్లని dereference మీరు లేదా గమనికలు మరియు నేను చెల్లని చెప్పటానికి ఎందుకంటే ఈ సమయంలో కథ, y లోపలి ఏమిటి? ఆధారిత Y విలువ ఏమిటి గత కొన్ని మెట్ల మీద? అవును? ఆ ఏమిటి? ప్రేక్షకులు: ఒక చిరునామా. DAVID మలన్: ఒక చిరునామా. ఇది ఒక చిరునామా ఉండాలి కానీ నేను initialized చేశారు? కాబట్టి నేను ఇంకా లేదు. సో అక్కడ ఉండాలి ఏమి అంటారు? ఇది కేవలం కొన్ని చెత్త విలువ ఏమిటి. ఇది సున్నా నుండి ఏ చిరునామా కావచ్చు 2 బిలియన్ మీరు RAM యొక్క రెండు వేదికలను కలిగి ఉంటే, లేదా సున్నా 4 బిలియన్ మీరు చేసిన ఉంటే RAM నాలుగు గిగాబైట్ల పొందారు. ఇది కొన్ని చెత్త విలువ అయితే సమస్య కార్యాచరణ వ్యవస్థ, మీరు ఇవ్వలేదు ఉంటే మెమరీ యొక్క భాగం ప్రత్యేకంగా మీరు కు వెళ్లాలనుకుంటున్నారా ప్రయత్నిస్తున్న, ఇది సాధారణంగా కారణం జరగబోతోంది మేము సెగ్మెంటేషన్ దోషంగా చూసిన. కాబట్టి నిజానికి, మీరు ఏ కలిగిన కార్యాలయం గంటల వద్ద సమస్యలు నిరాశపరిచాడు లేదా సమస్యలు లో ఆ మరింత సాధారణంగా అవ్ట్ దొరుకుతుందని ఆశించాను తో విభజన లోపంగా ఆ సామాన్య అర్థం మీరు ఒక విభాగంలో తాకిన చేస్తున్నారు మీరు చేయకూడని మెమరీ. మీరు మెమరీ తాకిన చేస్తున్నారు ఆ ఆపరేటింగ్ సిస్టమ్ లేదు ఉంది అంతే లేదో, మీరు తాకే అనుమతి మీ శ్రేణి చాలా దూరం వెళ్ళడం ద్వారా లేదా లేదో, ఇప్పుడు మొదలు మీరు తాకడం ఉన్నందున అంతే కొన్ని చెత్త విలువ మెమరీ ఆ. కాబట్టి ఇక్కడ స్టార్ x చేస్తున్న వివరింపబడని ప్రవర్తన యొక్క విధమైన ఉంది. మీరు అసమానత ఎందుకంటే ఎప్పుడూ , కార్యక్రమం కేవలం క్రాషవ్వటానికి జరగబోతోంది ఉంటాయి మీరు చెబుతున్న ఎందుకంటే, ఈ చిరునామాకు వెళ్ళి మరియు మీరు ఏ ఆలోచన ఎక్కడ ఉన్నాయి ఆ చిరునామా నిజానికి ఉంది. కాబట్టి ఆపరేటింగ్ సిస్టమ్ అవకాశం ఉంది మీ ప్రోగ్రామ్ క్రాష్ అన్నారు ఫలితంగా మరియు నిజానికి, ఆ ఏమి Binky అక్కడ జరిగింది. కాబట్టి చివరికి Binky, స్థిర ఈ ఈ సమస్య. ఆ కార్యక్రమం కాబట్టి కూడా బలహీనంగా జరిగినది. కానీ మీరు విధమైన ముందుకు నకలు ఉంటే మరియు బదులుగా ఈ లైన్ అమలు y, x సమానం అర్థం సంసార చిరునామా ఒక x, కూడా y లో అది చాలు. కాబట్టి చిత్రాల, మేము చేసిన రెండు బాణాలు ఈ ప్రాతినిధ్యం X నుండి మరియు y పాయింటింగ్ నుండి అదే స్థానానికి. కాబట్టి అర్ధవంతంగా, x సమానం y కు ఆ రెండు ఎందుకంటే అదే నిల్వ ఉంటాయి చిరునామా, ergo, 42 వద్ద గురిపెట్టి మరియు ఇప్పుడు, మీరు స్టార్ చెప్పటానికి y, y లో చిరునామా వెళ్ళండి ఈ ఒక ఆసక్తికరమైన వైపు ప్రభావం కలిగి ఉంది. సో y లో చిరునామా x లో చిరునామా అదే విషయం. కనుక మీరు చిరునామాకు వెళ్ళి చెప్పటానికి మరియు y 13 విలువ మార్చడానికి, ఎవరు వేరే ప్రభావితమయ్యారు? X, పాయింట్ D, మాట్లాడటానికి ఉంది అలాగే ప్రభావితం చేయాలి. నిజానికి, ఎలా నిక్ ఈ చిత్రాన్ని గీశాడు క్లేమాషన్గా సరిగ్గా ఆ ఉంది. మేము పాయింటర్ అనుసరించండి అయినప్పటికీ y, మేము అదే స్థానంలో ఇచ్చాను అందువలన మేము ప్రింట్ ఉన్నట్లయితే x లేదా y యొక్క pointee అవ్ట్, అప్పుడు మేము 13 విలువ చూస్తాము. ఇప్పుడు, నేను pointee చెప్పాలని వీడియో స్థిరంగా. ప్రోగ్రామర్లు, నా జ్ఞానం, ఎప్పుడూ నిజానికి పదం pointee చెప్పటానికి, కోణాల ఇది ఆ వద్ద, కానీ నిలకడ వీడియో తో, తెలుసుకోవటం ఆ అని అంతే ఆ పరిస్థితిలో అర్థం. క్లేమాషన్గా కాబట్టి ఏవైనా ప్రశ్నలు లేదా గమనికలు లేదా malloc కేవలం ఇంకా? సంఖ్య? అయితే సరే. కనుక తదుపరి లేకుండా శ్రమ, యొక్క ఒక రూపం తీసుకుందాం ఈ వాస్తవానికి ఇక్కడ కొంత సమయం కోసం వాడుతున్నారు. కాబట్టి మేము ఈ CS50 లైబ్రరీ కలిగింది ఈ విధులను అన్ని కలిగియున్నారు. మేము, GetInt, GetString చాలా ఉపయోగించిన బహుశా ముందుగానే GetLongLong నా pset లో ఒకటి లేదా అలా, కానీ నిజానికి ఏమిటి జరుగుతున్నాయి? సరే, ఒక త్వరిత వీక్షణ తీసుకుందాం ఒక కార్యక్రమం వద్ద హుడ్ కింద ఆ మేము మీరు CS50 ఇవ్వాలని ఎందుకు స్ఫూర్తి లైబ్రరీ, మరియు వాస్తవంగా గత వారం నాటికి, మేము ఆ తీసుకోవడం మొదలు శిక్షణ చక్రాలు ఆఫ్. కాబట్టి ఈ ఇప్పుడు క్రమబద్ధీకరించబడింది ఒక పంచనామా ఏ ఉంది జరుగుతున్నాయి CS50 లైబ్రరీ లోపల, మేము ఇప్పుడు కదిలే మొదలవుతుంది అయినప్పటికీ దూరంగా దాని నుండి చాలా కార్యక్రమాలు కోసం. ఈ 0 కాబట్టి scanf అనే ప్రోగ్రామ్. ఇది చిన్న సూపర్ ఉంది. ఇది కేవలం ఈ పంక్తులు ఉంది, కానీ అది ఒక విధి అని scanf పరిచయం మేము నిజంగా లో చూడండి చూడాలని ఆ CS50 లైబ్రరీ లోపల ఒక క్షణం, కొంచెం రూపంలో అయితే. లైన్ 16 న ఈ కార్యక్రమం కాబట్టి ఒక వేరియబుల్ x ప్రకటించటం. సో నాకు ఒక పూర్ణాంకానికి కోసం నాలుగు బైట్లు ఇవ్వాలని. ఇది వినియోగదారు చెప్పడం చెయ్యబడిన సంఖ్య దయచేసి, ఆపై ఈ ఒక ఆసక్తికరమైన లైన్ అని నిజానికి గత వారం కలిసి నెలకొల్పుతుంది మరియు ఇది. Scanf, మరియు అప్పుడు అది ఒక పడుతుంది గమనించే ఫార్మాట్ స్ట్రింగ్, కేవలం printf వంటి, % i ఒక పూర్ణాంకానికి అర్థం, మరియు అప్పుడు అది ఒక పడుతుంది కొద్దిగా కనిపిస్తోంది రెండవ వాదన అల్లరిగా. ఇది ఆంపర్సండ్ చిహ్నం x, మరియు గుర్తుకు, మేము మాత్రమే ఈ ఒకప్పుడు గత వారం చూసింది. ఆంపర్సండ్ చిహ్నం x ఏ ప్రాతినిధ్యం లేదు? ఆంపర్సండ్ చిహ్నం సి లో ఏమి చేస్తుంది? అవును? ప్రేక్షకులు: యొక్క చిరునామా. DAVID మలన్: యొక్క చిరునామా. కనుక ఇది వ్యతిరేకంగా ఉంది స్టార్ ఆపరేటర్లు, స్టార్ ఆపరేటర్లు చెప్పారు అయితే, వెళ్ళి ఈ చిరునామా ఆంపర్సండ్ చిహ్నం ఆపరేటర్లు దొరుకుతుందని చెప్పారు, ఈ వేరియబుల్ చిరునామా, అందువలన ఈ ఎందుకంటే, కీ జీవితంలో scanf యొక్క ప్రయోజనం యూజర్ యొక్క స్కాన్ చేయడం కీబోర్డ్ నుండి ఇన్పుట్, సంసార ఆధారపడి అతను లేదా ఆమె రకాల, మరియు ఆ యూజర్ యొక్క ఇన్పుట్ చదవండి ఒక వేరియబుల్ లోకి, కానీ మేము గత రెండు వారాల్లో చూసింది ఆ swap ఫంక్షన్ ఏమిటంటే మనం అమలు అప్రయత్నంగా ప్రయత్నించారు కేవలం విచ్ఛిన్నమైంది. Swap ఫంక్షన్ తో గుర్తుచేసుకున్నారు మేము కేవలం ints వంటి A మరియు B డిక్లేర్డ్, మేము విజయవంతంగా మార్పిడి లేదు స్వాప్ లోపల రెండు వేరియబుల్స్ కేవలం పాలు మరియు OJ వలె, కానీ స్వాప్, తిరిగి వెంటనే గౌరవం తో ఫలితంగా ఏమిటి x మరియు y, అసలు విలువలు? ఏమీ లేదు. అవును. ఏమీ ఎందుకంటే, ఆ సమయంలో జరిగిన మార్పిడులు, దాని స్థానిక కాపీలు మార్చడానికి అన్ని చెప్పటానికి ఇది ఈ సమయంలో, చేసినప్పుడు మేము చేసిన వాదనలు లో ప్రయాణిస్తున్న చేశారు విధులు, మేము ఉన్నాము కేవలం ఆ వాదనలు కాపీలు ప్రయాణిస్తున్న. మీరు ఆ తో చేయవచ్చు మీరు వారితో కావలసిన సంసార, కానీ వారు ఏ చూడాలని అసలు విలువల ప్రభావం. కాబట్టి ఈ మీరు ఉంటే సమస్యాత్మకంగా ఉంది scanf వంటి ఫంక్షన్ కలిగి అనుకుంటున్నారా జీవితంలో, దీని ప్రయోజనం స్కాన్ చేయడం కీబోర్డ్ నుండి యూజర్ యొక్క ఇన్పుట్ ఆపై, తద్వారా ఖాళీలు పూరించడానికి మాట్లాడటం, అని, x వంటి వేరియబుల్ ఇవ్వాలని ఒక విలువ, నేను ఒకవేళ ఎందుకంటే కేవలం scanf కు x పాస్, మీరు గత తర్కం పరిగణలోకి వారం, scanf అది కోరుకుంటున్నారు పనులను చేయవచ్చు x యొక్క ఒక కాపీని తో, కానీ చేయలేని మేము ఇవ్వాలని తప్ప శాశ్వతంగా x మార్చవచ్చు , మాట్లాడటానికి, ఒక నిధి మ్యాప్ scanf x గుర్తులతో పేరు, అనగా త్వరలో కాబట్టి x యొక్క చిరునామా లో అనుమతించబడవు scanf అక్కడ మరియు నిజానికి మార్పు వెళ్ళే x యొక్క విలువ. కాబట్టి నిజంగా, అన్ని ఈ కార్యక్రమం చేసే నేను నా సోర్స్ లో scanf 0, చేస్తే 5m డైరెక్టరీ scanf 0 చేయడానికి, డాట్ scanf స్లాష్ సంఖ్య 50 దయచేసి, 50 ధన్యవాదాలు. కనుక ఇది అన్ని ఆసక్తికరమైన కాదు కానీ నిజానికి ఏం వెంటనే నేను కాల్ వంటి ఉంది ఇక్కడ x యొక్క విలువ scanf శాశ్వతంగా మార్చబడింది. ఇప్పుడు, ఈ nice కనిపిస్తుంది మరియు మంచి, మరియు నిజానికి, అది మేము నిజంగా అవసరం లేదు వంటి తెలుస్తోంది అన్ని ఇకపై వద్ద CS50 లైబ్రరీ. ఉదాహరణకు, యొక్క అమలు అనుమతిస్తాయి ఇక్కడ ఈ సారి మరింత. నాకు రెండో దాన్ని తిరిగి లెట్. యొక్క సంఖ్య ప్రయత్నించండి తెలపండి మరియు బదులుగా ముందు వంటి 50 మాట్లాడుతూ, యొక్క కేవలం ఏ సే తెలియజేయండి. సరే, ఆ కొద్దిగా అదృష్టము వార్తలు. అలాగే. ఇక్కడ మరియు కేవలం కొన్ని అర్ధంలేని. కనుక ఇది కనపడదు తప్పుడు పరిస్థితుల్లో నిర్వహించడానికి. కాబట్టి మేము ప్రారంభ మినిమల్లీ అవసరం కొన్ని లోపం చెకింగ్ జోడించడం వినియోగదారు కలిగి నిర్ధారించుకోండి 50 వంటి ఒక వాస్తవ సంఖ్య టైప్, స్పష్టంగా టైప్ పదాలు ఎందుకంటే సమస్యాత్మకమని కనుగొనబడింది లేదు, కానీ అది బహుశా ఉండాలి. ఇప్పుడు ఆ ఈ వెర్షన్ చూద్దాం నా ప్రయత్నం GetString reimplement కు. Scanf ఈ ఉంది ఉంటే కార్యాచరణను, నిర్మించారు ఎందుకు మేము ఈ తో dabbling చేశారు GetString వంటి శిక్షణ చక్రాలు? బాగా, ఇక్కడ బహుశా నా సొంత ఉంది GetString యొక్క సాధారణ వెర్షన్ అనగా ఒక వారం క్రితం, నేను చెప్పారు ఉండవచ్చు, నాకు స్ట్రింగ్ ఇవ్వాలని మరియు స్వీకరించేందుకు కాల్. నేడు, నేను మొదలు వెళుతున్న , చార్ స్టార్, ఇది రీకాల్ మాట్లాడుతూ ఇది కేవలం పర్యాయపదంగా ఉంది. ఇది ఇంకా భయం కలిగించే బాగుంది కానీ అంతే ఖచ్చితమైన అదే విషయం. నాలో ఒక వేరియబుల్ అని బఫర్ ఇవ్వాలని ఒక స్ట్రింగ్ నిల్వ జరగబోతోంది, , వినియోగదారు స్ట్రింగ్ దయచేసి చెప్పండి ఆపై, కేవలం ముందు వంటి, ఈ పాఠం ఋణం ప్రయత్నించండి తెలియజేయండి scanf % s ఈ సమయంలో మరియు బఫర్ లో పాస్. ఇప్పుడు, ఒక శీఘ్ర తెలివి చెక్. ఎందుకు నేను చెప్పడం లేదు చేస్తున్నాను ఆంపర్సండ్ చిహ్నం ఈ సమయంలో బఫర్? మునుపటి ఉదాహరణ నుండి ప్రతిపాదించే. ప్రేక్షకులు: చార్ స్టార్ పాయింటర్ ఉంది. DAVID మలన్: ఖచ్చితంగా ఈ సమయంలో, చార్ ఎందుకంటే స్టార్, ఇప్పటికే పాయింటర్ ఒక చిరునామా ఉంది అక్కడ ఉండటం ఆ స్టార్ నిర్వచనం ద్వారా. మరియు scanf ఒక చిరునామా భావిస్తే, అది కేవలం బఫర్ లో పాస్ పరుస్తుంది. నేను చిహ్నం బఫర్ చెప్పటానికి అవసరం లేదు. ఆసక్తికరమైన, మీరు అనుకొనుట ఈ వంటి ఏదో. ఇది భిన్నమైన అర్థాన్ని కలిగి ఉంటుంది. ఈ మీరు ఒక పాయింటర్ ఇచ్చి నిజానికి ఇది ఒక పాయింటర్, కు సి లో, కానీ ఒక చెల్లుబాటు అయ్యే విషయం ఇప్పుడు, అది సాధారణ ఉంచడానికి వీలు మరియు స్థిరమైన కథ ఉంచేందుకు. నేను పాస్ వెళుతున్న స్వీకరించేందుకు మరియు సరైన అని. సమస్య అయితే ఈ ఉంది. నాకు ముందుకు వెళ్లి ఈ అమలు అనుమతిస్తాయి అది కంపైల్ తర్వాత కార్యక్రమం. Scanf 1 చేయండి. ఇది డామన్, నా కంపైలర్ యొక్క నా లోపం పట్టుకోవడంలో. నాకు ఒక రెండవ ఇవ్వండి. గణగణమని ద్వని చేయు. యొక్క scanf-1.c అనుకోండి. అలాగే. అక్కడ మేము వెళ్ళి. నేను అవసరం. CS50 ID వివిధ ఉంది కాన్ఫిగరేషన్ సెట్టింగులను అని మీరే వ్యతిరేకంగా మిమ్మల్ని రక్షించడానికి. నేను ద్వారా ఆ డిసేబుల్ అవసరమైన మానవీయంగా ఈ సమయంలో గణగణమని ద్వని చేయు అమలు. కాబట్టి స్ట్రింగ్ దయచేసి. నేను ముందుకు వెళ్లి టైప్ వెళుతున్న నా ఇష్టమైన హలో ప్రపంచంలోని. శూన్య సరే. నేను టైప్ ఏమి కాదు. కనుక ఇది తెలియచేస్తాయి వార్తలు ఏదో తప్పు అనే. నాకు ముందుకు వెళ్లి టైప్ లెట్ ఒక నిజంగా దీర్ఘ స్ట్రింగ్ లో. శూన్య ధన్యవాదాలు మరియు నేను తెలియదు ఉంటే నేను అది క్రాష్ చెయ్యలేరు వెళుతున్న. యొక్క కొద్దిగా కాపీని ప్రయత్నించండి లెట్ అతికించండి మరియు ఈ సహాయపడుతుంది ఉంటే చూడండి. కేవలం ఈ చాలా అతికించండి. ఇది ఖచ్చితంగా ఒక పెద్ద వార్తలు సాధారణ కంటే స్ట్రింగ్. యొక్క కేవలం నిజంగా అది వ్రాద్దాము. నం అది డామన్. కమాండ్ దొరకలేదు. కాబట్టి ఆ సంబంధంలేని వార్తలు. నేను అతికించారు ఎందుకంటే ఆ కొన్ని చెడు అక్షరాలు, కానీ ఈ హాజరవుతారు పని ఉండదని. ఎందుకంటే యొక్క ఈ మరొకసారి ప్రయత్నించండి లెట్ మేము నిజానికి అది క్రాష్ ఉంటే అది మరింత వినోదంగా ఉంటుంది. యొక్క ఈ టైప్ లెట్ మరియు ఇప్పుడు, నేను రెడీ ఒక నిజంగా దీర్ఘ స్ట్రింగ్ కాపీ వెళుతున్న మరియు ఇప్పుడు యొక్క ఉంటే చూద్దాము మేము ఈ విషయం క్రాష్. నేను ఖాళీలు విస్మరించబడ్డాయి మరియు గమనించండి కొత్త లైన్లు మరియు సెమికోలన్లు మరియు అన్ని అల్లరిగా అక్షరాలు. ఎంటర్. ఇప్పుడు నెట్వర్క్ నిదానమైన వ్యవహరిస్తాను. నేను స్పష్టంగా, చాలా పొడవుగా కమాండ్-V ఆక్రమించాయి. అది నాకేనా! కమాండ్ దొరకలేదు. అలాగే. Well, పాయింట్ అయితే క్రింది. కాబట్టి నిజంగా జరుగుతుందో ఏమి ఈ ప్రకటన తో లైన్ 16 న చార్ స్టార్ బఫర్? కాబట్టి నేను పొందుతున్నాను ఏమి am నేను ఒక పాయింటర్ డిక్లేర్ చేసినప్పుడు? నేను పొందుతున్నాను అన్ని నాలుగు బైట్ విలువ బఫర్ అని, కానీ అది లోపల ఏమి ఈ క్షణం లో? ఇది కేవలం కొన్ని చెత్త విలువ ఏమిటి. ఏ సమయంలో ఎందుకంటే మీరు ఒక వేరియబుల్ డిక్లేర్ సి లో, కొన్ని చెత్త విలువ, మరియు మేము మొదలు పెడుతున్నారు ఈ రియాలిటీ పైగా ట్రిప్. ఇప్పుడు, నేను scanf చెప్పినపుడు, ఈ చిరునామాకు వెళ్ళి మరియు ఏ సైన్ యూజర్ రకాల చాలు. వినియోగదారు రకాల ఉంటే హలో ప్రపంచ బాగా, నేను ఇక్కడ ఉంచగలను? బఫర్ ఒక చెత్త విలువ ఉంది. కాబట్టి ఒక బాణం వంటి రకమైన ఉంది ఆ పేరు తెలిసిన గురిపెట్టి ఉంది. బహుశా అది సూచించే ఇక్కడే నా మెమరీ. అందువలన యూజర్ హలో ప్రపంచంలోని రకాల కార్యక్రమం ఉంచేందుకు ప్రయత్నిస్తుంది స్ట్రింగ్ హలో వరల్డ్ బాక్ స్లాష్ 0 మెమరీ యొక్క భాగం లో. కానీ అధిక సంభావ్యత తో, కానీ స్పష్టంగా లేదు 100% సంభావ్యత, కంప్యూటర్ అప్పుడు క్రాష్ అన్నారు కార్యక్రమం ఈ కాదు ఎందుకంటే మెమరీ నేను తాకే అనుమతి చేయాలి. కాబట్టి చిన్న లో, ఈ కార్యక్రమం సరిగ్గా ఆ కారణం దోషము. నేను ప్రాథమికంగా ఏమి చేయడం లేదు? ఏమి దశలను నేను కేవలం వంటి, విస్మరించలేదు మేము Binky యొక్క మొదటి ఉదాహరణ తో తొలగించిన? అవును? ప్రేక్షకులు: మెమరీ కేటాయింపు? DAVID మలన్: మెమరీ కేటాయింపు. నేను వాస్తవానికి కేటాయించింది లేదు ఆ స్ట్రింగ్ ఏ మెమరీ. కాబట్టి మేము రెండు మార్గాలు ఈ పరిష్కరిస్తాము. ఒకటి, మేము అది సాధారణ ఉంచడానికి మరియు నిజానికి, ఇప్పుడు మీరు ఉన్నాము ఒక చెరిపేసిన చూడడానికి వెళ్ళడం ఏమి మధ్య రేఖల వ్యూహం, ఒక స్ట్రింగ్ ఏమి, ఏమి ఒక ఉంది చార్ స్టార్ అక్షరాలు ఏ వ్యూహం ఉంది ఉంది. ఇక్కడ రెండవ ఉదాహరణ వార్తలు తీగలను మరియు నోటీసు పాల్గొన్న అన్ని నేను లైన్ లో చేసిన 16 బదులుగా చెప్పాడు, ఉంది ఆ బఫర్ ఒక చార్ అవతరిస్తుంది స్టార్, మెమరీ భాగం ఒక పాయింటర్, నేను చాలా ముందుగా ఇవ్వాలని వెళుతున్న 16 అక్షరాలు వచ్చేలా ఒక బఫర్, మరియు నిజానికి, మీరు తెలిసి ఉంటే పదం బఫరింగ్ తో, బహుశా వీడియోలు ప్రపంచంలో నుండి ఒక వీడియో బఫరింగ్, బఫరింగ్ ఉన్న, బఫరింగ్. Well, కనెక్షన్ ఇక్కడ ఏముంది? YouTube యొక్క బాగా, ఇన్సైడ్ మరియు వీడియో ప్లేయర్లు లోపల సాధారణంగా ఒక శ్రేణి 16 కంటే పెద్ద వార్తలు. ఇది పరిమాణంలో ఒకటి వ్యూహం కావొచ్చు మెగాబైట్, బహుశా 10 మెగాబైట్ల, మరియు ఆ శ్రేణి లో మీ బ్రౌజర్ చేస్తుంది బైట్లు యొక్క మొత్తం బంచ్ డౌన్లోడ్ మెగాబైట్ల యొక్క మొత్తం బంచ్ వీడియో, వీడియో ప్లేయర్, YouTube యొక్క లేదా ఎవరైతే వార్తలు మొదలవుతుంది ఆ శ్రేణి నుండి బైట్లు చదవడం, మరియు ఏ సమయంలో మీరు చూడండి పదం బఫరింగ్, బఫరింగ్, ఆ ఆటగాడు ఎవరు అర్థం ఆ శ్రేణి ముగింపు సంపాదించిన. నెట్వర్క్ అది కాదు ఉంది కాబట్టి నెమ్మదిగా ఉంది ఎక్కువ బైట్లు శ్రేణి రీఫిల్ అందువలన మీరు బిట్ల బయటకు వచ్చేసాం వినియోగదారుకు ప్రదర్శించడానికి. కాబట్టి బఫర్ ఒక వర్ణనాత్మక పదం ఇక్కడ ఉంది ఇది కేవలం ఒక శ్రేణి, మెమరీ భాగం ఉంది. మరియు ఈ పరిష్కరించడానికి చేస్తుంది అది అవుతుంది ఎందుకంటే మీరు శ్రేణుల చికిత్స చేయవచ్చు వంటి అయితే వారు కూడా బఫర్ అయితే, విలాసాలు కేవలం ఒక గుర్తు, అది ఒక ఉంది అక్షరాలు క్రమం, బఫర్, నాకు ఉపయోగం, ప్రోగ్రామర్, మీరు చుట్టూ దాని పేరు పాస్ చేయవచ్చు ఇది ఉన్నప్పటికీ వంటి ఒక పాయింటర్ గా అయితే ఒక భాగం యొక్క చిరునామా ఉన్నారు 16 అక్షరాలు కోసం మెమరీ. ఆ చెప్పటానికి సో, నేను పాస్ చేయవచ్చు సరిగ్గా scanf ఆ పదం అందువలన ఇప్పుడు, నేను ఈ కార్యక్రమం చేస్తే, scanf 2 చేయడానికి, డాట్ స్లాష్ scanf 2, మరియు టైప్ హలో వరల్డ్ ఆ time-- ఎంటర్ అయ్యో, ఏమి జరిగింది? స్ట్రింగ్ దయచేసి. నేను ఏం తప్పు చేసావ్? హలో వరల్డ్ బఫర్. హలో ప్రపంచ. ఆహ్, నేను ఏమి తెలుసు. అలాగే. కాబట్టి దానిని చదవడం మొదటి స్పేస్ వరకు. కాబట్టి యొక్క కేవలం ఒక క్షణం మోసం వీలు మరియు నేను ఏదో టైప్ అనుకున్నారు చెప్పారు నిజంగా దీర్ఘ ఈ సుదీర్ఘ వాక్యం ఉంది వంటి ఆ ఒకటి, రెండు, ముడు, నాలుగు, ఐదు, ఆరు, ఏడు, ఎనిమిది, తొమ్మిదు, 10, 11, 12, 13, 14, 15, 16. అలాగే. ఇది నిజంగానే ఒక దీర్ఘ వాక్యం ఉంది. కాబట్టి ఈ వాక్యం ఉంది ఇక కంటే 16 అక్షరాలు అందువలన నేను ఎంటర్ కొట్టాడు ఏమి జరుగుతుందో? బాగా, ఈ సందర్భంలో కథ, నేను ప్రకటించారు బఫర్ నిజానికి ఒక అర్రే ఉండటం వెళ్ళడానికి 16 అక్షరాలు సిద్ధంగా తో. కాబట్టి ఒకటి, రెండు, ముడు, నాలుగు, ఐదు, ఆరు, ఏడు, ఎనిమిది, తొమ్మిది, 10, 11, 12, 13, 14, 15, 16. సో 16 అక్షరాలు, మరియు ఇప్పుడు, నేను ఈ సుదీర్ఘ ఉంది లాగ చదవండి వాక్యం, ఏ జరిగే ఉంటుంది జరగబోతోంది నేను ఈ చదవడానికి వెళుతున్న ఒక పొడవుగా ఉంది S-E-ఎన్-T-E-ఎన్-సి-E, వాక్యం. కాబట్టి ఈ ఉద్దేశపూర్వకంగా ఉంది ఒక చెడు విషయం నేను దాటి వ్రాయడం ఉంచేందుకు నా శ్రేణి యొక్క సరిహద్దులు నా బఫర్ యొక్క సరిహద్దులు దాటి. నేను లక్కీ మరియు ప్రోగ్రామ్ పొందలేరు శ్రమ నడుస్తున్న చేస్తూనే మరియు కాదు, కానీ సాధారణంగా, ఈ మాట్లాడే నిజానికి నా ప్రోగ్రామ్ క్రాష్ చేస్తుంది మరియు అది ఒక బగ్ ఉంది నా నేను అడుగు క్షణం కోడ్ సరిహద్దులు దాటి ఆ శ్రేణి, నేను ఎందుకంటే అది ఉంటే తెలియదు తప్పనిసరిగా క్రాష్ అన్నారు లేదా నేను లక్కీ పొందండి వెళుతున్న ఉంటే. కాబట్టి ఈ సమస్యాత్మకంగా ఉంది ఎందుకంటే ఈ సందర్భంలో, అది పని అనిపించడం లేదు మరియు యొక్క అయినప్పటికీ, ఇక్కడ విధి tempt వీలు IDE కొంచెం తట్టుకోలేక తెలుస్తోంది of-- అక్కడ మేము వెళ్ళి. చివరగా. నేను ఈ మాత్రమే చూడగలరు ఉన్నాను. కాబట్టి నేను సరదాగా టైపింగ్ చాలా కలిగి ఒక నిజంగా దీర్ఘ వాస్తవ పదబంధం అది ఖచ్చితంగా మించిపోయింది 16 బైట్లు, నేను ఎందుకంటే ఈ క్రేజీ దీర్ఘ బహుళ లైన్ లో టైప్ సరిపోలే, ఆపై ఏమి గమనిస్తారు. కార్యక్రమం ప్రింటింగ్ ప్రయత్నించారు ఆపై ఒక విభజన లోపంగా వచ్చింది మరియు లోపాలుగా విభజన ఉన్నప్పుడు ఈ వంటి ఏదో జరుగుతుంది మరియు ఆపరేటింగ్ సిస్టమ్ చెప్పారు ఏ, ఆ స్మృతి టచ్ కాదు. మేము చంపడానికి చూడాలని పూర్తిగా కార్యక్రమం. కాబట్టి ఈ సమస్యాత్మక తెలుస్తోంది. నేను కార్యక్రమం అనగా మెరుగుపరచాము కనీసం, కొన్ని మెమొరి కానీ ఈ నిర్బంధించడానికి అగుపిస్తుంది పొందడానికి ఫంక్షన్ GetString కొన్ని పరిమిత పొడవు 16 తీగలను. మీరు ఊతమిచ్చే అనుకుంటే 16 అక్షరాలు కంటే వాక్యాలను, మీరు ఏమి చేస్తారు? సరే, మీరు పెంచుతుంది 32 ఈ బఫర్ పరిమాణం లేదా ఆ రకమైన చిన్న తెలుస్తోంది. ఎందుకు మేము చేయటం లేదు 1,000 కానీ తిరిగి పుష్. అకారణంగా స్పందన ఏమిటి కేవలం చేయడం ద్వారా ఈ సమస్యను నివారిస్తుంది 1,000 అక్షరాలను వంటి పెద్ద నా బఫర్? ఈ విధంగా GetString అమలు ద్వారా. ఇక్కడికి మంచి లేదా చెడు? అవును? ప్రేక్షకులు: మీరు చాలా బంధించేందుకు ఉంటే స్థలం మరియు మీరు అది వాడవద్దు, అప్పుడు మీరు ఆ స్థలం పునర్నియోగిస్తాయి కాదు. DAVID మలన్: ఖచ్చితంగా. మీరు చేయలేని అజమాయిషీ ఉంటే, ఇది వ్యర్థమైన వార్తలు నిజానికి ఆ బైట్ల 900 అవసరం మరియు ఇంకా మీరు కోరుతూ చేస్తున్న ఏమైనప్పటికీ మొత్తం 1,000, మీరు కేవలం మరింత మెమరీ వినియోగించే చేస్తున్నారు మీరు అవసరం కంటే యూజర్ యొక్క కంప్యూటర్, మరియు అన్ని కొన్ని తర్వాత మీరు ఇప్పటికే ఎదుర్కొన్న జీవితంలో మీరు ఉన్నప్పుడు కార్యక్రమాలను మా అమలు మరియు వారు, మెమరీ మా అప్ తినడం ఈ నిజానికి పనితీరును ప్రభావితం చేయవచ్చు మరియు యూజర్ యొక్క అనుభవం కంప్యూటర్లో. కాబట్టి ఆ రకమైన ఒక సోమరి పరిష్కారం, ఖచ్చితంగా, మరియు దీనికి విరుద్ధంగా, ఇది మాత్రమే వ్యర్థమైన వార్తలు, ఏమి సమస్య ఇప్పటికీ నా బఫర్ చేయడానికి కూడా, ఉంది 1,000? అవును? ప్రేక్షకులు: స్ట్రింగ్ పొడవు 1,001 ఉంది. DAVID మలన్: ఖచ్చితంగా. మీ స్ట్రింగ్ పొడవు 1,001 ఉంటే, మీరు ఖచ్చితమైన అదే సమస్య, నా వాదన ద్వారా, నేను చేస్తాను అప్పుడు అది 2000 తయారు, కానీ మీరు తెలియదు అది ఉండాలి ఎలా పెద్ద ముందుకు, మరియు ఇంకా, నేను నా ప్రోగ్రామ్ కంపైల్ లేదు ప్రజలు ఉపయోగించడానికి వీలు ముందు మరియు డౌన్లోడ్ అది. కాబట్టి ఈ సరిగ్గా రకం ఉంది stuff CS50 లైబ్రరీ ప్రయత్నించే మాకు సహాయపడుతుంది మరియు మేము మాత్రమే చూపులో చేస్తాము అంతర్లీన అమలు కొన్ని ఇక్కడ, కానీ ఈ CS50 డాట్ సి ఈ CS50 IDE ఉన్నాడు ఫైల్ మీరు ఉపయోగించి చేసిన అన్ని ఈ వారాల. ఇది పూర్వ సంకలనం మరియు మీరు చేసిన స్వయంచాలకంగా ఉపయోగిస్తున్నాము కలిగి స్వభావం ద్వారా గణగణమని ద్వని చేయు L CS50 జెండా డాష్, కానీ నేను అన్ని ద్వారా స్క్రోల్ డౌన్ ఉంటే ఈ విధులు, ఇక్కడ GetString వార్తలు, మరియు కేవలం మీరు ఇవ్వాలని ఏమి రుచి, జరగబోతోంది యొక్క వద్ద ఒక త్వరిత వీక్షణ తీసుకుందాం సంబంధిత సంక్లిష్టత. ఇది ఒక దీర్ఘ సూపర్ ఫంక్షన్, కానీ మేము చేసింది అన్ని హార్డ్ గురించి ఆలోచించడం కలిగి ఎలా తీగలను పొందడానికి గురించి వెళ్ళండి. ఇక్కడ నా బఫర్ మరియు నేను వార్తలు స్పష్టంగా శూన్యం ప్రారంభించడం. ఈ, కోర్సు యొక్క, ఉంది చార్ స్టార్ అదే విషయం, కానీ నేను నిర్ణయించుకుంది CS50 లైబ్రరీ అమలు మేము చేయబోతున్నామని ఉంటే పూర్తిగా డైనమిక్ నేను ఒక ఎంత పెద్ద ముందుగానే తెలియదు స్ట్రింగ్ వినియోగదారులు పొందడానికి కావలసిన వెళ్తున్నారు. నేను మొదలు వెళుతున్న కేవలం ఒక ఖాళీ స్ట్రింగ్ తో మరియు నేను చాలా అప్ నిర్మించడానికి వెళుతున్న మెమరీ నేను యూజర్ స్ట్రింగ్ సరిపోయే అవసరం మరియు నేను లేకపోతే తగినంత, నేను గోవా వెళుతున్నాను మరింత మెమరీ కోసం ఆపరేటింగ్ సిస్టమ్. నేను వారి స్ట్రింగ్ తరలించడానికి వెళుతున్న మెమరీ పెద్ద భాగం లోకి మరియు నేను విడుదల లేదా ఉచిత వెళుతున్న మెమరీ కావలసినంత పెద్ద భాగం మరియు మేము కేవలం చూడాలని మరల దీన్ని. సో శీఘ్ర చూపులో, ఇక్కడ కేవలం ఒక వేరియబుల్ ఇది నేను ట్రాక్ వెళుతున్న నా బఫర్ సామర్థ్యం యొక్క. నేను ఎన్ని బైట్లు ఇముడుతుంది? ఇక్కడ ఒక వేరియబుల్ n వార్తలు నేను ఉంచాలని వెళుతున్న నిజానికి లో ఎన్ని బైట్లు ట్రాక్ వినియోగదారు టైప్ లేదా ఆ బఫర్. మీరు ముందు ఈ చూడని ఉంటే, మీరు పేర్కొనవచ్చు ఒక Int వంటి వేరియబుల్ , పేరు సూచిస్తున్నట్లుగా, సైన్ చేయని ఉంది అంటే అది కాని ప్రతికూల, మరియు ఎందుకు నేను ఎప్పుడూ తెలుపుట ఇబ్బంది కావలసిన ఒక పూర్ణాంకానికి కేవలం ఒక పూర్ణాంకానికి కాదని, కానీ అది సంతకం లేని పూర్ణాంకానికి ఏమిటి? ఇది కాని ప్రతికూల పూర్ణాంకానికి ఉంది. [వినబడని] అర్థం ఏమిటి? ప్రేక్షకులు: ఇది ఒక మొత్తం వర్ణించే లో మెమరీ [వినబడని] ఉండాలనే. DAVID మలన్: అవును. నేను సంతకం లేని చెప్పే చేస్తే, ఈ వాస్తవానికి మీరు అదనపు మెమరీ ఒకటి బిట్ ఇవ్వడం మీరు ఉంటే అది వెర్రి రకంగా ఉంది, కానీ ఆ అదనపు మెమరీ ఒకటి బిట్ కలిగి మీరు అనేక రెండుసార్లు వంటి కలిగివుంటాయి మీరు ప్రాతినిధ్యం చేయవచ్చు విలువలు, అది ఒక 0 లేదా 1 కావచ్చు. కాబట్టి అప్రమేయంగా, ఒక పూర్ణాంకానికి సుమారు కావచ్చు ప్రతికూల 2 బిలియన్ అన్ని మార్గం అనుకూల 2 బిలియన్. ఆ పెద్ద శ్రేణులు ఉన్నాయి, కానీ అది ఇప్పటికీ రకమైన వ్యర్థమైన వార్తలు మీరు మాత్రమే పట్టించుకోనట్లు ఉంటే పరిమాణాలు, ఇది కేవలం intuitively కాని ప్రతికూల ఉండాలి లేదా అనుకూల లేదా 0, బాగా అప్పుడు, ఎందుకు మీరు 2 బిలియన్ వృధా ప్రతికూల సంఖ్యలు సాధ్యమయ్యే విలువలను మీరు ఎప్పుడూ వాటిని ఉపయోగించడానికి వెళుతున్న ఉంటే? సో సైన్ చేయని, ఇప్పుడు నా పూర్ణాంకానికి చెప్పి 4 బిలియన్ మధ్య 0 మరియు సుమారు ఉంటుంది. కాబట్టి ఇక్కడ కారణాల కేవలం ఒక పూర్ణాంకానికి సి వార్తలు మేము ఇప్పుడు వంటి లోకి అందదు బదులుగా ఒక పూర్ణాంకానికి ఉంది ఎందుకు ఒక చార్ యొక్క, కానీ ఇక్కడ ఉంది ఏమి సారాంశం మీరు, మరియు కొన్ని ఉదాహరణకు ఉపయోగిస్తూ ఉండవచ్చు, కూడా PSet నాలుగు లో fgetc ఫంక్షన్ లేదా తర్వాత, మేము అది చూస్తారు మళ్ళీ సమస్య ఐదు, సెట్ fgetc ఎందుకంటే పేరు nice ఉంది రకమైన విధమైన arcanely, సూచిస్తుంది అది ఒక ఫంక్షన్ అని ఒక పాత్ర పొంది కాబట్టి ఏమి ప్రాథమికంగా విభిన్నమైనది మేము GetString చేస్తున్న ఏమిటి గురించి మేము ఉపయోగించకుంటే ఉంది అదే విధంగా scanf. మేము కేవలం దశల వారీ పాటు ముగింపులో ఉంటాయి సంసార యూజర్ టైప్, మేము ఎల్లప్పుడూ ఒక కేటాయించాలని ఎందుకంటే చార్, అందువలన మేము ఎల్లప్పుడూ సురక్షితంగా ఒక సమయంలో ఒక చార్ చూడండి, మరియు మేజిక్ ఇక్కడ జరిగే మొదలవుతుంది. నేను క్రిందికి స్క్రోల్ వెళుతున్న ఈ ఫంక్షన్ మధ్యలో కేవలం క్లుప్తంగా ఈ ఫంక్షన్ పరిచయం. చాలా ఒక ఉన్నట్లు malloc ఫంక్షన్ ఉంది ఒక realloc ఫంక్షన్ పేరు realloc మీరు మెమరీ భాగం పునర్నియోగిస్తాయి అనుమతిస్తుంది అది పెద్ద లేదా చిన్న చేయడానికి. సో లాంగ్ కథ చిన్న మరియు నేడు నా చేతి యొక్క ఒక అల, ఆ ఏమి GetString తెలుసు చేస్తున్న ఇది యొక్క విధమైన ఉంది అద్భుతంగా పెరుగుతున్న లేదా యూజర్ గా బఫర్ తగ్గిపోతున్న అతని లేదా ఆమె స్ట్రింగ్ లో రకాలు. కనుక వినియోగదారు రకాల చిన్న స్ట్రింగ్, ఈ కోడ్ మాత్రమే తగినంత కేటాయించుకునే మెమరీ స్ట్రింగ్ సరిపోయే. యూజర్ టైపింగ్ ఉంచుతుంది ఉంటే నేను మళ్ళీ మళ్ళీ వలె మళ్ళీ, బాగా, ఉంటే బఫర్ యొక్క ప్రారంభంలో ఈ పెద్ద మరియు ప్రోగ్రామ్ గుర్తిస్తాడు ఒక నిమిషం వేచి, నేను ఖాళీ బయటకు రెడీ, ఇది రెట్టింపు జరగబోతోంది బఫర్ పరిమాణం ఆపై బఫర్ పరిమాణం రెట్టింపు మరియు రెట్టింపును పని చేసే కోడ్, మేము ఇక్కడ దాన్ని చూస్తే, అది కేవలం ఈ తెలివైన ఒక లైనర్. మీరు ఈ వాక్యనిర్మాణం చూసిన ఉండకపోవచ్చు ముందు, కానీ మీరు స్టార్ సమానం చెప్పుకోవాలంటే, ఈ అదే విషయం ఉంది సామర్థ్యం సార్లు 2 చెప్పడం. కనుక ఇది కేవలం రెట్టింపు ఉంచుతుంది బఫర్ సామర్థ్యం ఆపై realloc చెప్పడం ఇవ్వాలని కూడా ఆ మరింత మెమరీ. ఇప్పుడు, జనాంతికంగా, అక్కడ ఇక్కడ ఇతర క్రియలు మేము ఏ వివరాలు జరిపేందుకు కాదని GetInt లో చూపించడానికి కంటే ఇతర, మేము GetInt లో GetString ఉపయోగించడానికి. మేము అది కాదు అని తనిఖీ శూన్య, ఇది, రీకాల్, ప్రత్యేక విలువ అని ఏదో తప్పు జరిగింది అంటే. మేము మెమరీ లేదు. బెటర్ ఆ తనిఖీ. మరియు మేము ఒక సెంటినెల్ విలువ తిరిగి. కానీ నేను వారి వ్యాఖ్యలకు వాయిదా చేస్తాము ఎందుకు మరియు అప్పుడు మేము scanf యొక్క ఈ బంధువు ఉపయోగించడానికి sscanf అని మరియు అది అవుతుంది ఆ sscanf, లేదా స్ట్రింగ్ scanf, మీరు లైన్ పరిశీలించి అనుమతిస్తుంది వినియోగదారు టైప్ మరియు మీరు ఇప్పుడు చూద్దాం ముఖ్యంగా విశ్లేషించేందుకు మరియు నేను ఏమి ఇక్కడ చేస్తున్న నేను sscanf చెప్పడం నేను ఉంది, యూజర్ ఉంది సంసార విశ్లేషించడానికి టైప్ మరియు ఖచ్చితంగా% i చేయడానికి, అక్కడ అది పూర్ణాంకం ఉంది, మరియు మేము లేదు రెడీ కూడా ఉంది ఖచ్చితంగా ఎందుకు నేడు పొందడానికి క్లుప్తంగా ఒక% ఇక్కడ సి, కానీ అనుమతిస్తుంది యూజర్ టైప్ ఉంటే మాకు గుర్తించడం సంఖ్య తర్వాత బోగస్ ఏదో. సో కారణం GetInt మరియు GetString retry, మళ్ళీ మిమ్మల్ని చెప్పండి మళ్ళీ ఎందుకంటే అన్ని ఉంది మేము వ్రాసిన చేసిన కోడ్, అది రకమైన యూజర్ యొక్క ఇన్పుట్ వద్ద ఆరాటపడుతుంది చూసుకోవాలి లో పూర్తిగా సంఖ్యా వార్తలు లేదా అది అసలైన ఫ్లోటింగ్ పాయింట్ విలువ లేదా వంటి, ఏ విలువ ఆధారంగా మీరు ఉపయోగిస్తున్నట్లయితే పని. హైమా. అలాగే. ఒక మౌత్ఫుల్ ఉంది కానీ పాయింట్ ఇక్కడ ఉంది మేము సంపాదించి కారణం ఆ శిక్షణ చక్రాలు ఎందుకంటే కనిష్ట స్థాయిలో ఉంటుంది కేవలం చాలా విషయాలు ఉన్నాయి అని మనం కోరుకున్న ఆ తప్పు వెళ్ళే preemptively నిర్వహించడానికి ఖచ్చితంగా ఆ విషయాలు తరగతి యొక్క ప్రారంభ వారాల, కానీ ఇప్పుడు PSet నాలుగున్నర PSet ఐదు తో మరియు మించి మీరు దానిని మరింత చూస్తారు మీరు కూడా మీరు మరింత సామర్థ్యం ఉన్నారు సమస్యలు కొన్ని రకాల పరిష్కార మీరే. GetString లేదా GetInt ఏ ప్రశ్నలు? అవును? ప్రేక్షకులు: మీరు ఎందుకు రెట్టింపు బఫర్ సామర్థ్యం కేవలం పెరుగుతున్న కంటే ఇది కచ్చితమైన ద్వారా? DAVID మలన్: మంచి ప్రశ్న. ఎందుకు మేము, సామర్థ్యం రెట్టింపు బఫర్ వ్యతిరేకంగా కేవలం అది పెరుగుతున్న కొన్ని స్థిరమైన విలువ ద్వారా? ఇది ఒక నిర్ణయానికి ఉంది. మేము దానిని ఉంటుంది ఎందుకంటే ఆ నిర్ణయించుకుంది సమయం వారీగా ఖరీదైన కొద్దిగా గోవా ఒక ఉంటుంది ఆపరేటింగ్ సిస్టమ్ మెమరీ కోసం, మేము కాదు రావడము వదులుకోవడానికి పెద్ద రెమ్మలు ఒక పరిస్థితి మేము చేయమని మళ్లీ మళ్లీ OS మళ్లీ మళ్లీ లో మెమరీ కోసం వెంటవెంటనే వరుస. కాబట్టి మేము కేవలం కొంతవరకు నిర్ణయించుకుంది ఏకపక్ష కానీ మనం సహేతుక ఆశిస్తున్నాము, ఆ, మీరు, లెట్స్ ఏమి ముందుకు మనలోని పొందడానికి ప్రయత్నించండి మరియు కేవలం తద్వారా అది రెట్టింపు ఉంచడానికి మేము సార్లు మొత్తం తగ్గించడానికి మేము malloc కాల్ లేదా realloc, కానీ మొత్తం తీర్పు తెలుసుకోవడం లేకపోవడంతో కాల్ వినియోగదారులు టైప్ అనుకోవచ్చు. రెండువైపులా వివాదస్పదమైంది కావచ్చు. చర్చించాలంటే మంచి. కాబట్టి యొక్క ఒక జంట పరిశీలించి వీలు మెమరీ యొక్క ఇతర దుష్ప్రభావాలు, తప్పు చేసే విషయాలు మరియు టూల్స్ మీరు చెయ్యవచ్చు తప్పులు ఈ రకాల పట్టుకోవడానికి ఉపయోగిస్తాయి. ఇది అయినప్పటికీ, మీరు అన్నింటినీ మారుతుంది check50, మీరు చాలా చెప్పదు బగ్గీ రాయడం జరిగింది వారం ఒక నుండి కోడ్, కూడా అన్ని check50 పరీక్షలు ఉంటే ఆమోదించింది, మరియు కూడా మీరు మరియు మీ TF సూపర్ నిశ్చితంగా ఉద్దేశించినట్లుగా మీ కోడ్ పనిచేస్తుంది. మీ కోడ్ బగ్గీ ఉంది లేదా మీరు అన్ని లో బలహీనంగా, CS50 లైబ్రరీ ఉపయోగించి, మెమరీ లీకింగ్ చేశారు. మీరు ఆపరేటింగ్ సిస్టమ్ అడగడం చేసిన కార్యక్రమాలు లో మెమొరీ మీరు వ్రాయలేదు, కాని మీరు చేసిన నిజానికి అది తిరిగి ఇచ్చిన ఎప్పుడూ. మీరు GetString అని చేసిన మరియు GetInt మరియు GetFloat, కానీ GetString, మీరు చేసిన unGetString లేదా ఇవ్వండి అని ఎప్పుడూ స్ట్రింగ్ తిరిగి లేదా వంటి, కానీ మేము చూసిన GetString మెమరీని కేటాయించాల్సిన చేసే malloc యొక్క మార్గం లేదా ఈ ద్వారా కేవలం ఇది ఫంక్షన్ realloc, ఆత్మ లో సమానమైన, మరియు ఇంకా, మేము పరిష్కరించగలుగుతున్నాము ఆపరేటింగ్ సిస్టమ్ అడగడం మెమరీ మరియు మెమరీ మళ్లీ మళ్లీ కానీ అది తిరిగి ఇవ్వడం ఎప్పుడూ. ఇప్పుడు, జనాంతికంగా, ఆ అవుతుంది ఒక కార్యక్రమం మెమరీ అన్ని వదిలేసి ఉన్నప్పుడు స్వయంచాలకంగా విముక్తి పొందుతాడు. కనుక ఇది ఒక భారీ ఒప్పందం కాదు. ఇది బ్రేక్ మాత్రం కాదు IDE లేదా నెమ్మదిగా విషయాలపై, కానీ ఉన్నప్పుడు కార్యక్రమాలు చేయండి సాధారణంగా మెమొరీ లీక్ మరియు వారు ఒక కాలం అమలు చేస్తున్నారు. మీరు ఎప్పుడైనా స్టుపిడ్ చిన్న చూసిన Mac OS లేదా hourglass లో బీచ్ బంతి విండోస్ మీద దీనికి రకమైన ఎక్కడ మందగింప లేదా ఆలోచిస్తూ లేదా ఆలోచన లేదా కేవలం నిజంగా మొదలవుతుంది ఒక క్రాల్ నిదానపరచేందుకు, ఇది చాలా అయ్యే అవకాశమున్నందున మెమొరీ లీక్ ఫలితంగా. రాసిన ప్రోగ్రామర్లు ఉపయోగిస్తున్నారు సాఫ్ట్వేర్ మెమరీ కోసం ఆపరేటింగ్ సిస్టమ్ అడగండి ప్రతి కొన్ని నిమిషాల ప్రతి గంట. కానీ మీరు అమలు చేస్తున్నారు అయినా సాఫ్ట్వేర్, మీ కంప్యూటర్ లో తగ్గించాలి ముగింపు గంటల లేదా రోజులు, మీరు మరింత కోరుతూ ఉండవచ్చు మెమరీ మరియు ఎప్పుడూ దీన్ని ఉపయోగించి అందువలన మీ సంకేతం, లేదా ఉండవచ్చు కార్యక్రమాలు మెమరీ లీకింగ్ ఉండవచ్చు మరియు మీరు మెమరీ లీక్ మొదలు ఉంటే, ఇతర కార్యక్రమాలు తక్కువ మెమొరీ ఉంది, మరియు ప్రభావం ప్రతిదీ వేగాన్ని. ఇప్పుడు, ఈ దూరం ఒకటి ద్వారా అత్యంత దారుణమైన కార్యక్రమాలు మీరు అవకాశాలు ఉంటుంది CS50 లో అమలు అజమాయిషీ దాని అవుట్పుట్ కంటే కూడా నిగూఢ ఉంది గణగణమని ద్వని చేయు యొక్క లేదా యొక్క తయారు లేదా కమాండ్ ఏ మేము ముందు అమలు చేసిన లైన్ కార్యక్రమాలు కానీ అదృష్టవశాత్తూ, దాని అవుట్పుట్ ఎంబెడ్ కొన్ని సూపర్ ఉపయోగపడిందా చిట్కాలు అని ఉపయోగకరమైన గాని PSet నాలుగు అవుతుంది లేదా కచ్చితంగా ఐదు pset. కాబట్టి Valgrind ఒక సాధనం అని అనిపించడం ఉపయోగించవచ్చు మీ ప్రోగ్రామ్ లో మెమరీ స్రావాలు. ఇది అమలు సాపేక్షంగా సులభం. మీరు కూడా Valgrind ఆపై అమలు అది కొద్దిగా మందమైన అయితే, డాష్ డాష్ లీక్ చెక్ పూర్తి సమానం, మరియు అప్పుడు డాట్ స్లాష్ మరియు మీ ప్రోగ్రామ్ యొక్క పేరు. కాబట్టి Valgrind ఆపై మీ ప్రోగ్రామ్ అమలు చేస్తుంది మరియు మీ ప్రోగ్రామ్ యొక్క చివరిలో అది వదిలేసి ముందు నడుస్తున్న మరియు మీరు మరొక ప్రాంప్ట్ ఇస్తుంది అది విశ్లేషించడానికి జరగబోతోంది మీ ప్రోగ్రామ్ అమలు చేయబడ్డాయి అయితే మరియు మీరు లీక్ చేయలేదు చెప్పండి మంచి ఇంకా ఏ మెమొరీ మీరు మెమరీ తాకే లేదని మీరు ఉండలేదు? ఇది ప్రతిదీ క్యాచ్ కాదు, కానీ అది చాలా విషయాలు పట్టుకోవడంలో వద్ద అందంగా మంచి. ఇక్కడ నా కలిగి పరుగుల ఉదాహరణకు ఈ కార్యక్రమం అమలు Valgrind కలిగి, అనే కార్యక్రమంలో జ్ఞాపకశక్తి, మరియు నేను వెళుతున్నాను ఉంటాయి ఆఫీసు హైలైట్ చివరికి మాకు ఆసక్తి. సో కూడా మరింత వ్యాపకాలు ఉంది నేను స్లయిడ్ నుండి తొలగించబడుతుంది చేసిన. కానీ యొక్క కేవలం ఏమి ఈ చూద్దాము కార్యక్రమం మాకు చెప్పడం సామర్థ్యం ఉంది. ఇది మాకు విషయాలు చెప్పడం సామర్థ్యం వార్తలు చెల్లని పరిమాణం 4 యొక్క వ్రాయండి ఇష్టపడుతున్నారు. ఇతర మాటలలో, మీరు మెమరీ తాకే ఉంటే, మెమరీ ప్రత్యేకంగా 4 బైట్లు మీరు చేయదని Valgrind మీరు తెలియజేయవచ్చు. పరిమాణం 4 యొక్క చెల్లని వ్రాయండి. మీరు నాలుగు బైట్లు తాకిన మీరు కలిగి ఉండకూడదు అని. మీరు ఎక్కడ ఆ చేసావ్? ఈ అందం ఉంది. మెమరీ డాట్ సి లైన్ 21 ఇక్కడ మీరు ఇరుక్కొనిపోయింది మరియు ఉపయోగపడిందా వై. మచ్ GDB వంటి, అది సహాయపడుతుంది అసలు లోపం వద్ద మీరు సూచించండి. ఇప్పుడు, ఈ ఒక కొంచెం ఎక్కువ అనిపిస్తుంది వాచాల, గందరగోళంగా లేకపోతే. 1 బ్లాక్లలో 40 బైట్లు ఖచ్చితంగా ఉంటాయి నష్టం రికార్డు 1 1 ఓడిపోయింది. ఆ అర్థం ఏమిటి? సరే, కేవలం మీరు అడిగారు అర్థం 40 బైట్లు మరియు మీరు అది తిరిగి ఇచ్చింది ఎప్పుడూ. మీరు malloc అని లేదా మీరు అని GetString మరియు ఆపరేటింగ్ సిస్టమ్ మీరు 40 బైట్లు, కానీ మీరు ఎప్పుడూ ఇచ్చింది విముక్తి లేదా ఆ స్మృతి విడుదల, మరియు స్పష్టంగా ఉంటుంది, మేము ఎన్నటికీ చేసిన మీరు ఎలా మెమరీ తిరిగి ఇవ్వాలని. ఒక సూపర్ ఉంది బయటకు వస్తాడు సాధారణ ఫంక్షన్ ఉచిత అని. ఒక వాదన, విషయం పడుతుంది మీరు ఉచిత లేదా తిరిగి ఇవ్వాలని కానీ 40 బైట్లు, స్పష్టంగా, ఈ కార్యక్రమంలో లైన్ వద్ద గల్లంతయ్యాయి మెమరీ యొక్క 20 సి కలదు. కాబట్టి యొక్క ఈ కార్యక్రమం చూద్దాం. ఇది సూపర్ పనికిరాని యొక్క. ఇది మాత్రమే ప్రదర్శించాడు ఈ ప్రత్యేక లోపం. కాబట్టి యొక్క పరిశీలించి తెలియజేయండి. ఇక్కడ ప్రధాన మరియు ప్రధాన, నోటీసు, కాల్స్ ఒక ఫంక్షన్ f ఆపై రాబడి అని. సో అన్ని ఆసక్తికరమైన కాదు. F ఏమి చేస్తుంది? నేను ఒక నమూనా తో ఇబ్బంది లేదు గమనించండి. నేను కోడ్ ఉంచాలని కోరుకున్నాడు వీలైనంత తక్కువ. నేను ప్రధాన పైన f చాలు మరియు ఆ, ఖచ్చితంగా, మంచిది ఈ వంటి చిన్న ప్రోగ్రామ్ల కోసం. కాబట్టి F దేన్నీ లేదు మరియు ఏదైనా తీసుకుంటారు కానీ దీన్ని లేదు. ఇది చాలా వంటి ప్రకటించాడు Binky ఉదాహరణలో, ఆ x అనే పాయింటర్ జరగబోతోంది ఒక పూర్ణాంకానికి యొక్క చిరునామా నిల్వ. కాబట్టి ఆ ఎడమ చేతి వైపు. ఆంగ్లంలో, ఏమిటి చేయడం కుడి చేతి వైపు? ఎవరైనా? ఈ మాకు ఏమి ఉంది? అవును? ప్రేక్షకులు: [వినబడని] సార్లు ఒక పూర్ణాంకానికి యొక్క పరిమాణం ఇది 10 సార్లు [వినబడని] DAVID మలన్: మంచి మరియు నాకు సంగ్రహించేందుకు వీలు. కాబట్టి 10 పూర్ణాంకాల తగినంత స్థలం కేటాయించాలని లేదా 10 ఒక పూర్ణాంకానికి యొక్క పరిమాణం ఏమిటి 4 నాలుగు బైట్లు, అందువలన 10 సార్లు 40, నేను చేసిన ఆ కుడి వైపు కాబట్టి హైలైట్ నాకు 40 బైట్లు ఇవ్వాలని మరియు మొదటి బైట్ యొక్క చిరునామా నిల్వ x లోకి. ఇప్పుడు చివరగా, మరియు ఇక్కడ ఎక్కడ వార్తలు ఈ కార్యక్రమం బగ్గీ, ఏమి ఉంది లైన్ 21 తో తప్పు తర్కం మీద ఆధారపడి? లైన్ 21 తో తప్పు ఏమిటి? అవును? ప్రేక్షకులు: మీరు కాదు [వినబడని] x లోకి సూచిక. DAVID మలన్: అవును. నేను ఆ వంటి x లోకి ఇండెక్స్ కాదు. కాబట్టి పదము, ఆ సరే. ఏ మంచిది మీరు వంటి చాలా ఉంది వ్యూహం పేరు చికిత్స చేయవచ్చు అయితే ఇది అదేవిధంగా, ఒక పాయింటర్ ఉంది అంతే అయితే మీరు ఒక పాయింటర్ చికిత్స చేయవచ్చు వ్యూహం, మరియు నేను పదము చెయ్యవచ్చు x బ్రాకెట్ ఏదో చెప్పటానికి, x బ్రాకెట్ i, కానీ 10 సమస్యాత్మకంగా ఉంది. ఎందుకు? ప్రేక్షకులు: ఇది లోపలి కాదు ఎందుకంటే. DAVID మలన్: ఇది కాదు మెమరీ యొక్క భాగం లోపల. అతిపెద్ద విలువ ఏమిటి నేను ఉండాలి వార్తలు ఆ చదరపు బ్రాకెట్లలో పెట్టటం? 9 ద్వారా 9, 0. సున్నా ఇండెక్సింగ్ ఎందుకంటే. కాబట్టి 9 ద్వారా 0 జరిమానా ఉంటుంది. బ్రాకెట్ 10 మంచి కాదు మరియు కానీ, ప్రతి సమయం అయితే గుర్తుకు నేను CS50 IDE చేయడానికి ప్రయత్నిస్తారు కనిపిస్తుంది బోగస్ విలువలు టైప్ చేయడం ద్వారా క్రాష్, ఇది ఎల్లప్పుడూ సహకారం లేదు నిజానికి, మీరు తరచుగా అదృష్ట పొందుటకు కనుక ఆపరేటింగ్ సిస్టమ్ లేదు గమనించవచ్చు మీరు ఇంత కొద్దిగా మెమరీ కొన్ని భాగం పాస్, మీరు సాంకేతికంగా లోపల బస ఎందుకంటే మీ విభాగంలో కానీ ఆ మరింత ఒక ఆపరేటింగ్ వ్యవస్థలు తరగతి లో, ఈ వంటి మరియు కనుక ఏదో చాలా సులభంగా దొరకకుండా వెళ్ళటానికి. మీ కార్యక్రమాన్ని ఎప్పుడూ క్రాషవ్వటానికి జరగబోతోంది నిలకడగా కాని ఒకసారి కొంచంసేపు. కాబట్టి యొక్క Valgrind ప్రయత్నించండి తెలపండి ఈ, మరియు ఇక్కడ పేరు మేము మునిగిపోతారు పొందుతారు కొద్ది సేపట్లో అవుట్పుట్ ద్వారా. కాబట్టి మెమరీ Valgrind లీక్ చెక్ చేయడానికి పూర్తి డాట్ స్లాష్ మెమరీ సమానం. నేను వాగ్దానం ఎందుకు ఇక్కడ వార్తలు ఈ హతమార్చడానికి ఉంటుంది. ఇక్కడ Valgrind, ఇక్కడ ఏమి ఉంది ఒక ప్రోగ్రామర్, కొన్ని సంవత్సరాల క్రితం ఇది మంచి ఆలోచన ఉంటుంది నిర్ణయించుకుంది వంటి అవుట్పుట్ చూడండి. కాబట్టి యొక్క ఈ అర్థంలో తయారు చేద్దాము. ఎడమ వైపు అన్ని మార్గం ఏ మంచి కారణం కోసం వైపు కార్యక్రమం ప్రక్రియ ID ఉంది మేము కేవలం ఏకైక నిర్ధారిణి అమలు కార్యక్రమం కోసం మేము నడిచింది. మేము నుండి తొలగించారు స్లయిడ్, కానీ అక్కడ ఇక్కడ కొన్ని ఉపయోగకరమైన సమాచారం. చాలా టాప్ వరకు స్క్రోల్ లెట్. మేము ప్రారంభమైంది ఇక్కడ. కనుక ఇది అన్ని ఎక్కువ అవుట్పుట్ కాదు. ఇక్కడ చెల్లని రాసే వార్తలు లైన్ 21 న పరిమాణం 4 యొక్క. Well, లైన్ 21 ఏమి ఉంది? లైన్ 21 సరిగ్గా ఉంది ఈ మరియు అది అర్ధమే నేను వ్యక్తి అవలంబిస్తాడు ఉన్నాను అని నేను ఉన్నాను ఎందుకంటే 4 బైట్లు రాయడం ఈ పూర్ణాంక ఉంచేందుకు ప్రయత్నిస్తున్నారు, ఇది ఏదైనా కావచ్చు అది కేవలం నిర్మాణము సున్నా, కానీ నేను దీనికై ఒక ప్రదేశంలోని అది చాలు నాకు సంబంధించినది కాదు. ఒక అంతేకాక, డౌన్ ఇక్కడ, 40 బైట్లు బ్లాక్స్ ఖచ్చితంగా రికార్డు 1 కోల్పోతాయి. నేను malloc కాల్ చేసినప్పుడు ఎందుకంటే ఇక్కడ, నేను నిజానికి మెమరీ విడిపించేందుకు ఎప్పుడూ. సో ఎలా మేము ఈ పరిష్కరిస్తాము? నాకు ముందుకు వెళ్లి ఒక చిన్న సురక్షితమైన మరియు అక్కడ 9 చేయండి మరియు ఇక్కడ ఉచిత x నాకు తెలియజేయండి. ఈ రోజు కోసం కొత్త ఫంక్షన్. నేను ఇప్పుడు మెమరీ డాట్ స్లాష్ తయారు తిరిగి ఉంటే, , దాన్ని మళ్ళీ న Valgrind అమలు అనుమతిస్తాయి నా విండో పెంచడానికి మరియు Enter నొక్కండి. ఇప్పుడు, ఇది బావుంది. వారు మంచి వార్తలు బరీ ఈ ఉత్పత్తి యొక్క అన్ని లో. అన్ని కుప్ప బ్లాక్స్ ఉంచారు. మేము ఏ కుప్ప తిరిగి వచ్చి ఉంటుంది అయితే ఎలాంటి దోషాలను సాధ్యమే. కాబట్టి ఈ కేవలం మరొక మీ సాధనం కిట్ కోసం సాధనం ఇది మీకు ప్రారంభించవచ్చు ఇప్పుడు ఆ వంటి లోపాలు కనుగొనేందుకు. కానీ యొక్క చూసేలా ఏమి మరింత తప్పు ఇక్కడ వెళ్ళవచ్చు. ఇప్పుడు పరివర్తనా లెట్ నిజానికి ఒక సమస్య పరిష్కార. జనాంతికంగా, ఈ ఒక ఉపశమనం ఉంటుంది ఉంటే గందరగోళం లేదా ఒత్తిడి కొద్దిగా, ఈ ఇప్పుడు ఫన్నీ ఉంది. అవును. ఆ అందమైన మంచి వార్తలు. గమనికలు ఉన్నాయి ఎందుకంటే చిరునామాలు మరియు చిరునామాలను సాంప్రదాయకంగా సాధారణంగా హెక్సాడెసిమల్ తో వ్రాసిన. హా హా, ఈ ఇప్పుడు ఫన్నీ ఉంది. ఏమైనప్పటికి, కాబట్టి ఇప్పుడు చూద్దాం నిజానికి ఒక సమస్యను పరిష్కరించడానికి. ఈ సూపర్ ఉంది సూపర్ ఇప్పటివరకు తక్కువ-స్థాయి మరియు మేము నిజంగా ఉపయోగకరంగా చేయవచ్చు ఈ తక్కువ స్థాయి వివరాలతో విషయాలు. కాబట్టి మేము కొన్ని వారాల పరిచయం క్రితం వ్యూహం యొక్క భావనను. ఒక అమరిక బాగుంది ఎందుకంటే అది మా కోడ్ శుభ్రం కష్టం మేము ఒక వ్రాయడానికి కావలెను ఉంటే ఎందుకంటే బహుళ విద్యార్థులు ఉన్న కార్యక్రమము లేదా బహుళ పేర్లు మరియు గృహాలు మరియు కళాశాలలో మరియు కళాశాలలు మరియు ఆ అన్ని మేము ప్రతిదీ మరింత నిల్వ చేసుకోవచ్చు సజావుగా ఒక శ్రేణి యొక్క లోపల. కానీ ఒక ఇబ్బంది ప్రపోజ్ వ్యూహం యొక్క ఇంతవరకూ. మీరు మీరుగా బాధపడ్డాడు చేసిన పోయినా ఒక కార్యక్రమంలో, కేవలం సహజంగా ఒక చెడ్డ విషయం ఏమిటి వ్యూహం గురించి, బహుశా? నేను కొన్ని అపక్రమ శబ్దాలు వినడానికి. ప్రేక్షకులు: ఇది కష్టం పరిమాణం మార్చడానికి. DAVID మలన్: ఇది కష్టం పరిమాణం మార్చడానికి. మీరు పరిమాణం మార్చలేరు వ్యూహం యొక్క, నిజానికి, కేవలంగా మీరు C. లో మరొక వ్యూహం కేటాయించాలని చేయవచ్చు, పాత ఒకటి నుండి ప్రతిదీ తరలించడానికి ఇప్పుడు కొత్త, మరియు లోకి కొన్ని అదనపు ఖాళీ, కానీ అది ఒక ఇష్టం లేదు జావా లేదా పైథాన్ వంటి భాష లేదా ఇతర ఏ సంఖ్య ఇది భాషల మీరు కొన్ని తెలిసిన కావచ్చు పేరు మీరు కేవలం విషయాలను జోడించవచ్చు ఒక అర్రే చివర విసుగు పుట్టేవరకు. మీరు ఒక వరుస కలిగి ఉన్నప్పుడు దాని పరిమాణం ఆ పరిమాణం 6, మరియు ఆలోచన ముందు వంటి చాలా ఒక నిర్దిష్ట పరిమాణం యొక్క ఒక బఫర్ కలిగి, మీరు గేట్ బయటకు ఊహించడం కలిగి ఏమి పరిమాణం మీరు అనుకుంటున్నారు? మీరు చాలా పెద్ద అంచనా ఉంటే, మీరు స్పేస్ వృధా చేస్తున్నాం. మీరు చాలా చిన్న అంచనా ఉంటే, మీరు కనీసం, ఆ డేటా నిల్వ కాదు చాలా పని లేకుండా. గమనికలు కాబట్టి నేడు, ధన్యవాదాలు, మేము కలిసి మా స్వంత కస్టమ్ కలపడం మొదలు డేటా నిర్మాణాలు, మరియు లో నిజానికి, ఇక్కడ ఏదో ఉంది ఒక చిన్న మరింత కనిపిస్తుంది మొదటి చూపులో గుప్తమైన, కానీ ఈ మేము ఒక లింక్ పిలుస్తాను ఏమిటి జాబితా, మరియు సారాంశాన్ని దాని పేరు రకమైన అది. ఇది సంఖ్యల జాబితా, లేదా ఈ సందర్భంలో, సంఖ్యల జాబితా, కానీ అది ఏదైనా ఒక జాబితా, కాని కాలేదు ఇది కలిసి బాణాలు మార్గం ద్వారా కలపబడి ఉంది మరియు కేవలం ఒక అంచనా పడుతుంది ఏమి టెక్నిక్ తో మేము సామర్థ్యం ఉంటాయని కలిసి కుట్టు, విధమైన ఒక థ్రెడ్ తో పాప్ కార్న్ వంటి, ఇక్కడ జాబితాలు దీర్ఘ చతురస్రాలు లింక్? దీని సంఖ్యలు? అంతర్లీన భాష ఫీచర్ ఏమిటి? ప్రేక్షకులు: ఒక పాయింటర్. DAVID మలన్: ఒక పాయింటర్. కాబట్టి ఈ బాణాలు ప్రతి ఇక్కడ సూచిస్తుంది ఒక పాయింటర్ లేదా కేవలం ఒక చిరునామా. కాబట్టి ఇతర మాటలలో, నేను కావాలా సంఖ్యల జాబితా నిల్వ, నేను అనుకుంటే నేను కేవలం నిల్వ కాదు పెరుగుతాయి మరియు కుదించే సామర్థ్యం వ్యూహంలో నా డేటా నిర్మాణం. కాబట్టి నేను ఒక చిన్న కలిగి ఉండాలి మరింత ఆడంబరం కానీ ఈ గమనించవచ్చు చిత్రాన్ని రకమైన సూచిస్తుంది మీరు కేవలం కొద్దిగా దారాలను పొందారు ఉంటే కలిసి ప్రతిదీ కనెక్ట్, బహుశా స్థలాన్ని ఆ హార్డ్ కాదు ఆ దీర్ఘ చతురస్రాలు లో మధ్య రెండు లేదా ఆ ల రెండు, మేము ప్రారంభిస్తాము ఒక కొత్త నోడ్ లో చాలు, వాటిని పిలుపు ఆపై కొన్ని కొత్త థ్రెడ్ తో, కేవలం కలిసి మూడు నోడ్స్ కందకాలు త్రవ్వడానికి, మొదటి ఒకటి, చివరి, మరియు ఒక మీరు కేవలం మధ్య ఇన్సర్ట్ ఆ. నిజానికి ఒక లింక్ జాబితా ఒక శ్రేణి కాకుండా, డైనమిక్ ఉంది. అది పెరుగుతాయి మరియు ఇది చెయ్యవచ్చు ముడుచుకుపోవడం మీరు లేదు తెలిసిన లేదా ముందుగానే ఎలా లో శ్రమ కలిగి చాలా డేటా మీరు నిల్వ చూడాలని, కానీ అది మేము కొద్దిగా మారుతుంది ఈ అమలు ఎలా జాగ్రత్తగా. కాబట్టి మొదటి యొక్క మేము అమలు ఎలా భావిస్తారు తెలియజేయండి ఈ చిన్న దీర్ఘ చతురస్రాలు ఒకటి. ఇది ఒక పూర్ణాంకానికి అమలు సులభం. మీరు కేవలం అప్పుడు పూర్ణాంకానికి n మరియు చెప్పటానికి మీరు ఒక పూర్ణాంకానికి 4 బైట్లు పొందడానికి, కానీ నేను ఒక పూర్ణాంకానికి పొందుతారు లేదు ఎలా, n కాల్ ఆపై ఒక పాయింటర్ యొక్క తదుపరి కాల్ తెలియజేయండి. మేము ఈ కాల్ కాలేదు విషయాలు ఏదైనా మేము కావలసిన కానీ నేను ఒక కస్టమ్ డేటా నిర్మాణం అవసరం. అవును? ప్రేక్షకులు: ఎమ్పారసన్డ్ [వినబడని]. DAVID మలన్: సో ఆంపర్సండ్ చిహ్నం మేము ఉపయోగిస్తాము సమర్థవంతంగా ఒక నోడ్ యొక్క చిరునామా పొందుటకు. కానీ మేము మరొక అవసరం సి ఫీచర్ క్రమంలో నాకు సృష్టించే సామర్థ్యం ఇవ్వాలని ఈ ఆచారం దీర్ఘచతురస్ర, ఈ ఆచారం వేరియబుల్ మీరు మెమరీలో, రెడీ ఉంటే. ప్రేక్షకులు: ఒక struct. DAVID మలన్: ఒక struct. గత వారం నుండి రీకాల్ మేము పరిచయం struct, ఈ చాలా సులభం కీవర్డ్ మాకు ఈ వంటి విషయాలు చేయడానికి అనుమతిస్తుంది. సి డేటా రాలేదు నిర్మాణం విద్యార్థి అని. ఇది Int మరియు ఫ్లోట్ మరియు చార్ మరియు వస్తుంది అటువంటి, కానీ విద్యార్థి తో రాదు, కానీ మేము ఒక విద్యార్థి డేటా రకం సృష్టించవచ్చు, ఈ సింటాక్స్ తో ఒక విద్యార్థి నిర్మాణం, ఇక్కడ. మరియు మీరు మళ్ళీ మళ్ళీ ఈ చూస్తారు. సో గురించి ఆందోళన లేదు కీవర్డ్లు గుర్తుంచుకోవడం, కానీ ముఖ్యమైన అని కీవర్డ్ ఉంది మేము చెప్పారు కేవలం నిజానికి struct మరియు తర్వాత మేము అది విద్యార్థి అని మరియు లోపల విద్యార్థి ఒక పేరు మరియు ఒక ఇల్లు ఉంది ఒక వసతి లేదా వంటి లేదా. కాబట్టి ఇప్పుడు నేడు, ఈ ప్రపోజ్ తెలియజేయండి. నేను కొన్ని పదాలు జోడించారు, కానీ నేను కావాలా చేసిన ఆ ఈ దీర్ఘ చతురస్రం అమలు ఒక Int మరియు రెండు వచ్చింది పాయింటర్, మీరు, నేను ఏమి నాకు తెలుసు కణుపు అని పిలిచే ఒక struct ప్రకటించాలని జరగబోతోంది. నేను చెప్పడానికి వెళ్ళడం, అది లోపలి, చూపుతాను ఒక నోడ్, ఈ దీర్ఘ చతురస్రం, ఒక పూర్ణాంకానికి ఉంది మరియు మేము కాల్ చేస్తాము n మరియు అది ఒక తదుపరి పాయింటర్ ఉంది. మరియు ఈ, కొద్దిగా మందమైన ఉంది కానీ మీరు దాని గురించి అనుకుంటే, చిత్రంలో అని బాణాలు ఒక క్షణం క్రితం ఏమిటి డేటా రకం ఉన్నాయి? ఎక్కడ ఆ బాణాలు ప్రతి సూచించబడిన డేటా నిర్మాణం ఏ రకం? ఇది కేవలం పర్ సే ఒక పూర్ణాంకానికి సూచించే. ఇది సూచించే మొత్తం దీర్ఘచతురస్రాకార విషయం మరియు దీర్ఘచతురస్రాకార విషయం మేము ఒక నోడ్ అంటారు, చెప్పారు. కాబట్టి మేము రకమైన కలిగి సంభవించేలా ఈ అటువంటి నిర్వచించే ఒక నోడ్ ఆ, మేము చెప్పడానికి కమిటీ n అనే ఒక Int కలిగి ఉంటుంది మరియు ఒక పాయింటర్ తదుపరి మరియు అని ఇది డేటా నిర్మాణం రకం ఆ పాయింటర్ స్పష్టంగా ఉంది struct నోడ్ అవతరిస్తుంది. కాబట్టి ఈ annoyingly వాచాల ఉంది మరియు కేవలం పాండిత్య ప్రకర్ష ఉండాలి కారణం ఎందుకు కాదు ఈ చెప్పటానికి, ఇది స్పష్టముగా , చాలా రీడబుల్ కనిపిస్తోంది రీకాల్ చదవండి సి ఎందుకంటే విషయాలు పైనుంచి, ఎడమ. మేము సెమికోలన్ వచ్చేవరకు ఇది కాదు కీవర్డ్ నోడ్ వాస్తవానికి ఉందని. మేము ఈ విధమైన కలిగి అనుకుంటే డేటా లోపల చక్రీయ సూచన నిర్మాణం, మేము దీన్ని కలిగి, పేరు మేము ఎగువన struct నోడ్ చెప్పవు మాకు ఈ వివరించే ఒక ఇక మార్గం ఇస్తుంది విషయం, మేము struct నోడ్ సే అప్పుడు లోపల, మరియు అప్పుడు చాలా చివరి పంక్తి వద్ద మేము చెప్పటానికి, అన్ని కుడి, సి, ద్వారా, కేవలం ఈ మొత్తం తిట్టు కాల్ విషయం ఒక నోడ్ మరియు ఆపడానికి మొత్తంగా కీవర్డ్ struct ఉపయోగించి. కాబట్టి ఈ కేవలం ఒక వాక్యనిర్మాణ ఉంది చివరకు మాకు సృష్టించడానికి అనుమతిస్తుంది ఆ ట్రిక్ సరిగ్గా ఈ కనిపించే ఏదో. మేము ఇప్పుడు ఊహించుకోవటం మేము చేస్తే కాబట్టి సి లో ఈ విషయం అమలు, ఎలా నిజానికి మేము ఈ నదీ ప్రవాహానికి అడ్డంగా ప్రయాణం మొదలు? Well, నిజానికి, మేము చేయాల్సిందల్లా ఉంది కుడి మరియు ఎడమ నుండి iterate రకమైన నోడ్స్ ఇన్సర్ట్ లేదా నోడ్స్ తొలగించండి లేదా మేము కావలసిన చోట విషయాలు కోసం వెతకవచ్చు, కానీ దీన్ని, యొక్క ముందుకు వెళ్లి తయారు చేద్దాము విషయాలు కొద్దిగా మరింత నిజ ఎందుకంటే ఇప్పటివరకు సూపర్ తక్కువ స్థాయి ఉంది. ఎవరైనా అక్షరాలా మొదటి ఉండాలని కోరుకుంటారు? అలాగే. అప్ న వస్తాయి. నీ పేరు ఏమిటి? DAVID: డేవిడ్. DAVID మలన్: డేవిడ్. మిమ్ములని కలసినందుకు సంతోషం. నేను కూడా. అయితే సరే. మరియు మేము ఒక సంఖ్య 9 అవసరం. మంచి Not మొదటి, బహుశా. సరే, సంఖ్య 9. ఒక సంఖ్య 17, దయచేసి. నాకు కొద్దిగా దూరంగా వెళదాం. సంఖ్య 22, దయచేసి, మరియు ఎలా దూరంగా వెనుక గురించి నేను ఏ చేతులు చూడగలరు ఉంటే అన్ని కాంతి లేదా సంఖ్య తో. ఎవరో అక్కడే స్వచ్ఛందంగా చేయబడిన. మీరు అప్ వచ్చిన అనుకుంటున్నారు? మీ ముంజేయి బలవంతంగా అప్ అన్నారు. 17 OK. 22. 26 డౌన్ వస్తోంది. ఎవరికీ అనుకుంటున్నారా forcefully-- అప్ న వస్తాయి. ఒక వాస్తవ స్వచ్చంద. కాబట్టి చాలా త్వరగా, ఉంటే మీరు అబ్బాయిలు ఏర్పాటు చేయవచ్చు నిన్ను నీవు కేవలం ఇష్టం తెరపై నోడ్స్. ధన్యవాదాలు. మరియు మీరు 26 ఉంటాం. అన్ని కుడి మరియు శీఘ్ర పరిచయాలు. కాబట్టి నేను డేవిడ్ ఉన్నాను మరియు మీకు కూడా ఉన్నాయి? DAVID: డేవిడ్. DAVID మలన్: మీరు? జేక్: జేక్. SUE: స్యూ. ALEX: అలెక్స్. రాఫీల్: రాఫెల్. TAYLOR: టేలర్. DAVID మలన్: టేలర్. అద్భుతమైన. కాబట్టి ఈ మా స్వచ్ఛందంగా నేడు మరియు ముందుకు వెళ్ళి మరియు ఆ విధంగా కొద్దిగా మారవచ్చు మరియు కేవలం ముందుకు వెళ్ళి ఉంచడానికి మీరు లేదా మీ మీ హోల్డింగ్ సంఖ్యలు మొదటి సైన్ మరియు మీ ఎడమ చేతి ఉపయోగించి, ముందుకు వెళ్లి కేవలం అమలు ఈ బాణాలు, కేవలం మీ ఎడమ చేతి వాచ్యంగా ఉంది కాబట్టి మీరు సూచించండి ఉండాలి సంసార వద్ద గురిపెట్టి మరియు మిమ్మల్ని మీరు కనుక కొన్ని గది ఇవ్వాలని మేము దృష్టి నిజానికి మీ చేతులు చూడగలరు పాయింటింగ్, మరియు మీరు కేవలం పాయింటు విధమైన గ్రౌండ్ వద్ద జరిమానా ఉంది. కాబట్టి ఇక్కడ ఒక ఒక లింక్ జాబితా రెండు, మూడు, నాలుగు, ఐదు నోడ్స్ ప్రారంభంలో, మరియు మేము ఈ ప్రత్యేక గమనించవచ్చు ఎవరు ప్రారంభంలో పాయింటర్ కీ మేము ట్రాక్ కలిగి ఎందుకంటే మొత్తం పొడవు జాబితా ఏదో. వారు వదిలి అయివున్నప్పటికీ ఈ కుర్రాళ్ళు, కుడి తిరిగి మెమరీలో వెనుకకు వారు నిజానికి ఎంతైనా ఉండవచ్చు కంప్యూటర్ యొక్క మెమరీ లో. సో ఈ కుర్రాళ్ళు కావచ్చు వేదికపై ఎక్కడైనా నిలబడి మరియు ఆ కాలం వారు చేస్తున్నపుడు, మంచిది నిజానికి మరొక వద్ద గురిపెట్టి, కానీ విషయాలను శుభ్రంగా మరియు సాధారణ, మేము చేస్తాము కేవలం వాటిని డ్రా వంటి కుడి ఎడమ ఈ, కానీ భారీ ఖాళీలు ఉండవచ్చు ఆ ల మధ్య లో. ఇప్పుడు, నేను నిజానికి కొన్ని ఇన్సర్ట్ అనుకుంటే కొత్త విలువ యొక్క ముందుకు వెళ్లి మనం. మేము ఇప్పుడు అవకాశం కలిగి మరొక నోడ్ ఎంచుకోవడానికి. 55 mallocing ఆఫ్ ప్రారంభిద్దాం సే. ఎవరైనా malloc ఉండటం పట్టించుకోవడం అనుకుంటున్నారా? సరే, అప్ న వస్తాయి. నీ పేరు ఏమిటి? RAINBOW: హరివిల్లు. DAVID మలన్: రెయిన్బో? అయితే సరే. Malloc హరివిల్లు. అప్ న వస్తాయి. కాబట్టి ఇప్పుడు మనం గోవా సమస్య పరిష్కారానికి ఉపయోగించే మేము 55 ఉంచవచ్చు పేరు. సో మాకు అన్ని తెలుసు, సహజంగా, అక్కడ ఆమె బహుశా మేము ప్రయత్నిస్తున్న ఉంటే చెందినది ఈ క్రమబద్ధీకరించబడింది ఉంచడానికి మరియు మీరు అబ్బాయిలు ఒక పడుతుంది ఉంటే తిరిగి అడుగు కాబట్టి మేము ఆఫ్ రాని వేదిక, ఆ గొప్ప ఉంటుంది. కాబట్టి నిజంగా, హరివిల్లు, నాతో ఇక్కడ పైగా మొదలు, ఎందుకంటే మేము ఇప్పుడు కంప్యూటర్ మాత్రమే ఒక సమయంలో ఒక వేరియబుల్ చూడండి. ఈ మొదటి నోడ్ ఉంటే కాబట్టి. అతను ఒక నోడ్ కాదు గమనించండి అతను కేవలం ఒక పాయింటర్ ఉంది అతను చిత్రీకరిస్తారు ఎందుకు ఆ ఒక పాయింటర్ మాత్రమే పరిమాణం కాదు ఆ పూర్తి దీర్ఘ చతురస్రాలు ఒకటి. కాబట్టి మేము ప్రతి వద్ద తనిఖీ చూడాలని మళ్ళా 9 కంటే 55 తక్కువ? నం 17 కంటే 55 తక్కువ? నం 22 కంటే తక్కువ? 26 కంటే తక్కువ? 34 కంటే తక్కువ? కాబట్టి ఇప్పుడు, స్పష్టంగా రెయిన్బో చివరిలో చెందినది. కాబట్టి స్పష్టతను, మరియు ఏమి మీ పేరు, టేలర్ ఉంది? TAYLOR: టేలర్. DAVID మలన్: టేలర్ యొక్క మధ్య కాబట్టి ఎడమ చేతి మరియు ఇక్కడ రెయిన్బో యొక్క చేతులు, దీని చేతిలో ఏమి సూచించడానికి అవసరం ఈ జాబితా లోకి 55 ఇన్సర్ట్ చెయ్యడానికి? మనం ఏమి చేయాలి? అవును? ప్రేక్షకులు: టేలర్ యొక్క చేతి ఎడమ అభిప్రాయపడుతున్నారు అవసరం. DAVID మలన్: ఖచ్చితంగా. సో ఒక నోడ్ ఇన్సర్ట్ జాబితా చివరకు లోకి అందంగా సులభం ఎందుకంటే టేలర్ కేవలం గ్రౌండ్ వద్ద బదులుగా, అభిప్రాయపడుతున్నారు ఉంది లేదా మేము శూన్య పిలుస్తాను శూన్య లేకపోవడంతో యొక్క విధమైన ఉంది ఒక పాయింటర్ లేదా ఒక ప్రత్యేక సున్నా పాయింటర్, మీరు మీ ఎడమ సూచించడానికి జరగబోతోంది చేతి రెయిన్బో మరియు అప్పుడు రెయిన్బో వద్ద, పేరు మీ ఎడమ తప్పక చేతి బహుశా అభిప్రాయపడుతున్నారు? డౌన్. ఆమె చేతి విధమైన ఉంటే అది మంచి కాదు ఇక్కడ లేదా విధమైన ఏ ఆఫ్ గురిపెట్టడం ఇది మార్గం. ఆ పరిగణించిన ఒక చెత్త విలువ, కానీ ఆమె చూపాడు ఉంటే కొన్ని వాల్యూ, మేము చేస్తాము సున్నా లేదా శూన్య కాల్, ఆ సరే మేము ఈ లో ఒక పదం ఎందుకంటే మరియు మేము జాబితా ఇప్పుడు పూర్తయ్యింది తెలుసు. సో వాట్ ఇంకొక సాపేక్షంగా సాధారణ కేసు? మేము 5 malloc కాలేదు? అప్ న వస్తాయి. నీ పేరు ఏమిటి? TIFFANY: Tiffany. DAVID మలన్: నేను క్షమించండి రెడీ? TIFFANY: Tiffany. DAVID మలన్: Tiffany. అయితే సరే. Tiffany malloced చేయబడింది విలువ 5 తో. అప్ న వస్తాయి. ఈ ఒక, చాలా సాపేక్షంగా సులభం కాని ఇప్పుడు క్రియల క్రమం పరిశీలిద్దాం. ఇది చాలా సులభం చివరిలో టేలర్ తో. సంఖ్య 5, కోర్సు కంటే తక్కువ 9 యొక్క అందువలన మేము, మేము Tiffany కలిగి, డేవిడ్ కలిగి మరియు మీ పేరు ఏమిటి? జేక్: జేక్. DAVID మలన్: జేక్. Tiffany, జేక్ మరియు డేవిడ్. ఎవరి వైపు మొదటి నవీకరించబడింది చేయాలి? ఏం మీరు ఇక్కడ ఏమి అనుకుంటున్నారు? ఒక జంట సాధ్యం మార్గాలు ఉన్నాయి కానీ ఒకటి లేదా మరింత తప్పు మార్గాలు కూడా ఉంది. ప్రేక్షకులు: ఎడమవైపున ప్రారంభించండి. DAVID మలన్: ఎడమవైపున ప్రారంభించండి. ఎవరు ఇక్కడ ఎడమవైపున వార్తలు? ప్రేక్షకులు: మొదటి. DAVID మలన్: సరే. కాబట్టి మొదటి ప్రారంభం మరియు మీరు పేరు చేస్తారు డేవిడ్ యొక్క చేతులు అప్డేట్ అనుకుంటున్నారా? ప్రేక్షకులు: 5 వైపు. DAVID మలన్: సరే. ఐదు వద్ద అందువలన డేవిడ్, పాయింట్ లేదా Tiffany ఇక్కడ, మరియు ఇప్పుడు? ప్రేక్షకులు: Tiffany 9 పాయింట్లు? DAVID మలన్: పర్ఫెక్ట్ Binky, లు తప్ప తల కేవలం రకమైన కుడి తెగిపోయే? తప్పు ఏది ఎందుకంటే వాచ్యంగా ఈ చిత్రం? ప్రేక్షకులు: నథింగ్ సూచించబడిన. DAVID మలన్: నథింగ్ ఉంది ఇప్పుడు జేక్ గురిపెట్టి. మేము అక్షరాలా 9 అనాథ చేసిన మరియు 17 మరియు మేము అక్షరాలా చేసిన ఈ మెమరీ అన్ని వెల్లడైంది ఎందుకంటే మొదటి దావీదును నవీకరించుటకు, ఆ ఇది సరిగ్గా పని గా అజమాయిషీ జరిమానా ఇప్పుడు Tiffany వద్ద గురిపెట్టి, కానీ ఎవరూ కలిగి ఉంటే జేక్ సూచించడానికి దూరదృష్టి, అప్పుడు మేము కోల్పోయి ఆ జాబితాలో సంపూర్ణంగా. కాబట్టి యొక్క దిద్దుబాటు రద్దుచెయ్యి వీలు. కాబట్టి ఒక మంచి విషయం ఉంది పైగా ట్రిప్ కానీ ఇప్పుడు సరిదిద్దడానికి. మనం మొదటి బదులుగా చెయ్యాలి? అవును? ప్రేక్షకులు: Tiffany 9 సూచించడానికి ఉండాలి? DAVID మలన్: నేను కాదు మీరు దగ్గరగా పొందుటకు. 9 ఎవరు సూచించాలి? ప్రేక్షకులు: Tiffany. DAVID మలన్: అన్ని కుడి. కాబట్టి Tiffany 9 వద్ద మొదటి సూచించాలి. కాబట్టి Tiffany తీసుకోవాలి ఒక ఏకరూప విలువ దావీదుకు, తెలుస్తోంది ఒక క్షణం పునరావృత కానీ ఆ రెండవ, ఎందుకంటే ఇప్పుడు మంచిది స్టెప్, మేము దావీదును నవీకరించవచ్చు Tiffany వద్ద, ఆపై ఉంటే అభిప్రాయపడుతున్నారు మేము కేవలం రకమైన పైకి విషయాలు శుభ్రం ఈ వసంత వంటి రకమైన ఉంది అయితే, ఇప్పుడు ఒక సరైన చొప్పించడం వార్తలు. కాబట్టి అద్భుతమైన. కాబట్టి ఇప్పుడు మేము దాదాపు అక్కడ ఉన్నారు. యొక్క ఒక చివరి ఇన్సర్ట్ లెట్ విలువ 20 వంటి విలువ. మేము ఒక చివరి స్వచ్ఛంద malloc ఉంటే? అప్ న వస్తాయి. కాబట్టి ఈ ఒక కొంచెం గమ్మత్తైన. కానీ నిజంగా, కోడ్ మేము ఉన్నాము రాయడం, మాటలతో అయినప్పటికీ, కేవలం ఒక బంచ్ కలిగి వంటిది ఇప్పుడు పరిస్థితులు, కుడి ఉంటే? మేము ఒక పరిస్థితి వచ్చింది ఇది చెందినది ఉంటే తనిఖీ ముగింపు, బహుశా ప్రారంభంలో. మేము లూప్ ఒకరకమైన అవసరం మధ్యలో స్పాట్ కనుగొనేందుకు. కాబట్టి యొక్క మీ పేరు ఏమిటి ఆ తెలియజేసేలా? ERIC: ఎరిక్. DAVID మలన్: ఎరిక్? ఎరిక్. మిమ్ములని కలసినందుకు సంతోషం. కాబట్టి మేము 20 ఉన్నాయి. ఐదు కంటే తక్కువ? నం తొమ్మిది కంటే తక్కువ? నం 17 కంటే తక్కువ? నం అలాగే. ఆయన ఇక్కడ చెందిన మరియు మీ పేర్లు మరోసారి? SUE: స్యూ. DAVID మలన్: స్యూ. ALEX: అలెక్స్. DAVID మలన్: స్యూ, అలెక్స్, మరియు? ERIC: ఎరిక్. DAVID మలన్: ఎరిక్. ఎవరి చేతులు మొదటి నవీకరించబడింది చేసుకోవాలని అవసరం? ప్రేక్షకులు: ఎరిక్. అలాగే. కాబట్టి ఎరిక్ యొక్క పేరు సూచించడానికి ఉండాలి? 22 వద్ద. గుడ్. ఇప్పుడు తదుపరి ఏమిటి? స్యూ అప్పుడు ఎరిక్ వద్ద చూపుతూ చేయవచ్చు మరియు ఇప్పుడు, మీరు అబ్బాయిలు కేవలం జరిమానా ఇది కొన్ని గది, తయారు దృశ్యపరంగా, ఇప్పుడు మేము చొప్పించడం చేశాను. కాబట్టి యొక్క ఇప్పుడు ఒక ప్రశ్న పరిశీలిద్దాం కానీ మా వాలంటీర్లు కోసం చాలా ధన్యవాదాలు. చాలా బాగా చేసారు. మీరు కోరుకుంటే, ఆ ఉంచుకోవచ్చు. మరియు మేము ఒక సుందరమైన విడిపోవడానికి బహుమతిగా ఉంటే కలిగి మీరు ప్రతి ఒక ఒత్తిడి బంతి తీసుకోవాలని అవ్వాలనుకుంటే. నాకు ఈ డౌన్ పాస్ లెట్. కాబట్టి ఈ takeaway ఏమిటి? ఈ అద్భుతమైన ఉన్నట్టుగా మేము ఇప్పుడు అజమాయిషీ వంటి ఒక ఒక ప్రత్యామ్నాయ పరిచయం కాబట్టి పరిమితమై లేదు ఆ శ్రేణి కొన్ని స్థిర పరిమాణం యొక్క వ్యూహం. వారు డైనమిక్ పెరుగుతాయి. కానీ మేము వంటి చాలా వారాల చూసిన గత మేము ఉచితంగా ఏదైనా పొందడానికి ఎప్పుడూ వంటి తప్పనిసరిగా ఇక్కడ ఒక రాజీ ఉంది. ఒక లింక్ యొక్క ఒక పైకి కాబట్టి జాబితా, ఈ చైతన్యానికి ఉంది? ఈ సామర్థ్యం, ​​స్పష్టముగా పెరుగుతాయి మరియు మేము డిలీట్ పూర్తి కాలేదు అవసరమైనపుడు మరియు మేము కుదించే కాలేదు. మేము ఏం ధర చెల్లిస్తున్న? రెండుసార్లు మొదటి చాలా స్పేస్, వంటి. మీరు చిత్రాన్ని చూడండి ఉంటే, ఇకపై am నేను పూర్ణాంకాల యొక్క జాబితా నిల్వ. నేను జాబితాను నిల్వ చేస్తున్నాను పూర్ణాంకాల ప్లస్ గమనికలు. నేను స్థలం మొత్తం రెట్టింపు చేస్తున్నాను. ఇప్పుడు, బహుశా అలాంటి కాదు ఒక పెద్ద ఒప్పందం, 4 బైట్లు 8 బైట్లు, కానీ అది ఖచ్చితంగా చేర్చండి భారీ సమాచార సమితుల్లో అప్. మరొక ఇబ్బంది ఏమిటి? అవును? ప్రేక్షకులు: మేము కలిగి వాటిని ఒక-ద్వారా-ఒక సంచరిస్తారు. DAVID మలన్: అవును. మేము వాటిని ఒకటి తరువాత ఒకటి ప్రయాణించేందుకు ఉన్నాయి. మీరు ఈ సూపర్ అప్ ఇచ్చింది ఏమి, తెలిసిన చదరపు బ్రాకెట్ అనుకూలమైన ఫీచర్ సంజ్ఞామానం, సరిగా రాండమ్ యాక్సెస్ అని పిలుస్తారు, మేము కేవలం జంప్ ఇక్కడ ఒక వ్యక్తి మూలకం కానీ ఇప్పుడు నేను ఇప్పటికీ కలిగి ఉంటే ఇక్కడ నా వాలంటీర్లు, నేను కనుగొనేందుకు కోరుకుంటే సంఖ్య 22, నేను కాదు బ్రాకెట్ ఏదో ఏదో వెళ్ళు. నేను చాలా, జాబితా చూసి ఉంటుంది సరళంగా మా శోధించడం ఉదాహరణల లాగా, సంఖ్య 22 కనుగొనేందుకు. కాబట్టి మేము అక్కడ ఒక ధర చెల్లించారు కనిపిస్తుంది. కానీ మేము అయితే చెయ్యవచ్చు ఇతర సమస్యలు పరిష్కరించడానికి. నిజానికి, నాకు పరిచయం తెలపండి విజువల్స్ కేవలం ఒక జంట. మీరు డౌన్ ఉన్నాను చేస్తే మాథుర్ డైనింగ్ హాల్ ఇటీవల మీరు గుర్తుకు వస్తుంది వారి ఈ వంటి ట్రేలు స్టాక్లు మేము నుండి ఈ అరువు తరగతి ముందు Annenberg. కాబట్టి ట్రేలు ఈ స్టాక్, అయితే, ప్రతినిధి నిజానికి ఒక కంప్యూటర్ సైన్స్ డేటా నిర్మాణం. ఒక డేటా నిర్మాణం ఉంది కంప్యూటర్ సైన్స్ లో ఒక స్టాక్ పిలుస్తారు, ఇది చాలా చక్కగా సరిగ్గా ఈ దృశ్య కూడా ఇస్తుంది. ఈ ట్రేలు ప్రతి ఒక కాదు కనుక ట్రే కానీ సంఖ్యలో వంటి మరియు నేను కోరుకున్నాడు సంఖ్యలను నిల్వ చేయడానికి, నేను ఇక్కడ ఒక అణచి కాలేదు, మరియు నేను ఇక్కడ మరొక అణచి కాలేదు మరియు సంఖ్యలను స్టాకింగ్ కొనసాగుతుంది ఒక మరొక, మరియు ఏమి పైన ఈ గురించి శక్తివంతమైన ఉపయోగపడిందా ఏమి సూత్రప్రాయంగా అని ఉంది ఈ డేటా నిర్మాణం? నేను ఉపసంహరించుకునేలా ఏ నంబర్ మొదటి అత్యంత సౌకర్యవంతంగా? అక్కడ ఇటీవల ఒక చాలు. కాబట్టి ఈ మేము లో అంటారని ఏమిటి కంప్యూటర్ సైన్స్ ఒక ఎల్ఐఎఫ్ఓ డేటా నిర్మాణం. , మొదటి చివరిగా అవుట్. మరియు మేము దీర్ఘ ఎందుకు ముందు చూస్తారు , ఇప్పుడు ఉపయోగకరమైన కాని కావచ్చు కేవలం ఆస్తి భావిస్తారు. మీరు అనుకుంటే అది తెలివితక్కువదని రకం భోజనశాల అది ఎలా గురించి. ప్రతిసారీ వారు శుభ్రంగా trays మరియు పైన తాజా వాటిని చాలు, మీరు గతంలో స్వచ్ఛమైన కలిగి కాలేదు కానీ చివరికి చాలా మురికి మరియు మురికి చాలా దిగువన ట్రే మీరు ఉంటే ఎప్పుడూ నిజానికి ఆ దిగువ పొందుటకు స్టాక్ మీకు ఎందుకంటే కేవలం కొత్త పెట్టటం ఉంచడానికి మరియు దాని పైభాగంలో శుభ్రంగా వాటిని. అదే విషయం జరిగే ఒక సూపర్ మార్కెట్ లో చాలా. మీరు ప్రదర్శన కేసులో కలిగి ఉంటే పాలు మరియు ప్రతిసారీ CVS యొక్క లేదా మరింత పాలు గెట్స్ ఎవరైతే, మీరు కేవలం పాలు బలంగా త్రోయు మీరు ఇప్పటికే తిరిగి మరియు మీరు ముందు అప్ క్రొత్త వాటిని చాలు మీరు కొన్ని అందంగా మురికి చూడాలని డేటా నిర్మాణం చివరిలో పాలు, ఇది దిగువన ఎల్లప్పుడూ ఎందుకంటే లేదా సమానమైన ఇది వెనుక ఎప్పుడూ ఉంది. కానీ గురించి ఆలోచించడం మరొక మార్గం ఉంది డేటా మరియు ఉదాహరణకు, ఈ సరిచేసుకోవడం. మీరు ఆ ప్రజలు ఒకటి ఉంటే ఎవరు ఇష్టపడ్డారు ఆపిల్ స్టోర్స్ బయట వరుసలో ఒక కొత్త ఉత్పత్తి వస్తుంది బయటకు, మీరు బహుశా ఉన్నాము స్టాక్ డేటా ఉపయోగించడం లేదు నిర్మాణం మీరు ఎందుకంటే మిగతావారికి ఎవరు మరొకరికి ఉంటుంది సరిచేసుకోవడం కొన్ని కొత్త బొమ్మ కొనుగోలు. అయితే, మీరు బహుశా ఉపయోగిస్తున్నారు, డేటా నిర్మాణం ఏ రకమైన వ్యవస్థ లేదా ఏ రకమైన వాస్తవ ప్రపంచంలో? ఆశాజనక అది ఒక లైన్, లేదా మరింత సరిగా లేదా మరింత బ్రిటిష్ వంటి, ఒక క్యూ. మరియు అది ఒక క్యూ ఒక కూడా ఉంది హాజరవుతారు కంప్యూటర్ సైన్స్ లో డేటా నిర్మాణం, కానీ ఒక క్యూ చాలా ఉంది వివిధ ఆస్తి. ఇది ఎల్ఐఎఫ్ఓ కాదు. , మొదటి చివరిగా అవుట్. ఇండ్లలో దేవుని. ఇది బదులుగా FIFO వార్తలు. మొదటి మొదటి,. మరియు ఒక మంచి విషయం నిష్పక్షపాత వైఖరి కొరకు ఖచ్చితంగా ఉన్నప్పుడు మీరు లైనింగ్ చేస్తున్నారు ఉదయం సూపర్ ప్రారంభ. మీరు మొదటి అక్కడ వస్తే మొదటి అలాగే పొందడానికి కావలసిన. కాబట్టి ఈ డేటా యొక్క అన్ని నిర్మాణాలు, క్యూలు మరియు స్టాక్స్ మరియు ఇతరులు పుష్పగుచ్ఛాలు, మీరు అవుతుంది ఈ అంతే వ్యూహం యొక్క ఆలోచించవచ్చు. ఈ ఉండవచ్చు, ఒక శ్రేణి ఒక స్థిర పరిమాణం 4, కానీ అది ఇష్టం మేము కేవలం పైల్ అని రకమైన నీస్ ఉంటుంది ట్రేలు దాదాపు అనంతమైన పొడవు మనం ఉంటే అనేక ట్రేలు లేదా సంఖ్యలు ఉంటాయి. కాబట్టి బహుశా మేము కావలసిన ఇక్కడ ఒక అనుబంధ జాబితా ఉపయోగించవచ్చు, కానీ అదేస్థాయిలో అవతరిస్తుంది సమర్థవంతంగా మేము మరింత మెమరీ అవసరం, ఒక కొంచం సమయం పడుతుంది, కానీ మేము స్టాక్ యొక్క ఎత్తు పరిమితం లేదు, చాలా మాథుర్ యొక్క ప్రదర్శన కేసు వంటి స్టాక్ పరిమాణం పరిమితం కావచ్చు, అందువలన ఈ డిజైన్ నిర్ణయాలు లేదా చివరికి మాకు అందుబాటులో ఎంపికలు. ఈ డేటా సో నిర్మాణాలు, మేము ప్రారంభించారు చేసిన సమర్థవంతంగా కొత్త ఎగువ హద్దులు చూసిన ఏం గతంలో సూపర్ ఫాస్ట్ మరియు మేము చెప్పను పేరు ఆఫ్ నేడు ఎక్కడ మేము పొందుటకు ఆశిస్తున్నాము చేస్తాము బుధవారం, మేము చేస్తాము ఒక డేటా చూడండి మొదలుపెట్టిన మాకు అన్వేషణ అనుమతించే నిర్మాణం లాగ్ ముగింపు సమయంలో డేటా ద్వారా మళ్ళీ. మరియు మేము వారం సున్నా లో, గుర్తు, అని చూసింది బైనరీ శోధన లేదా విభజన తో మరియు ఒక జయించటానికి. ఇది ఇంకా తిరిగి మరియు మంచి వస్తున్నాయో ఈ బుధవారం హోలీ గ్రెయిల్ పైకి రావటానికి ఉంటుంది నిజంగా నడుస్తుంది డేటా నిర్మాణం లేదా సిద్ధాంతపరంగా లో స్థిరంగా సమయం, అనగా అది ఎన్ని పట్టింపు లేదు లక్షలాది లేదా విషయాలు బిల్లియన్ల మేము డేటా నిర్మాణం కలిగి, అది మాకు స్థిరంగా సమయం పడుతుంది, బహుశా ఒక అడుగు లేదా రెండు దశలను లేదా 10 దశలను, కానీ దశలను స్థిరంగా సంఖ్యలు డేటా నిర్మాణం ద్వారా అన్వేషణ. నిజానికి పవిత్ర గ్రెయిల్ ఉంటుంది కానీ బుధవారం ఆ మరింత. అప్పుడు య చూడండి. [సంగీతాన్ని]