በ ‹C› ውስጥ ‹Null› ን እንዴት ማረጋገጥ እንደሚቻል (7 ደረጃዎች) (ከስዕሎች ጋር)

ዝርዝር ሁኔታ:

በ ‹C› ውስጥ ‹Null› ን እንዴት ማረጋገጥ እንደሚቻል (7 ደረጃዎች) (ከስዕሎች ጋር)
በ ‹C› ውስጥ ‹Null› ን እንዴት ማረጋገጥ እንደሚቻል (7 ደረጃዎች) (ከስዕሎች ጋር)

ቪዲዮ: በ ‹C› ውስጥ ‹Null› ን እንዴት ማረጋገጥ እንደሚቻል (7 ደረጃዎች) (ከስዕሎች ጋር)

ቪዲዮ: በ ‹C› ውስጥ ‹Null› ን እንዴት ማረጋገጥ እንደሚቻል (7 ደረጃዎች) (ከስዕሎች ጋር)
ቪዲዮ: 5 Ways To Remove A Background with GIMP 2024, ግንቦት
Anonim

በ C ፣ NULL ሁል ጊዜ በማስታወሻው ውስጥ ወደማይገኝ ነጥብ የሚያመለክት ምሳሌያዊ ቋሚ ነው። ምንም እንኳን ብዙ የፕሮግራም አዘጋጆች ከ 0 ጋር እኩል አድርገው ቢይዙትም ፣ ይህ በኋላ ላይ ሊያሳጣዎት የሚችል ቀለል ያለ ነው። ጠቋሚዎችዎን በቀጥታ በ NULL ላይ መፈተሽ እና በሌሎች ሁኔታዎች ውስጥ 0 ን መጠቀም የተሻለ ነው። NULL ን ባዩ ቁጥር ከጠቋሚዎች ጋር እየሰሩ መሆኑን ስለሚያውቁ ይህ ኮድዎን ንፁህ እና ለመረዳት ቀላል ያደርገዋል።

ደረጃዎች

የ 2 ክፍል 1 - ባዶ ቼክ ማከናወን

በ C ደረጃ 1 ውስጥ ባዶ መሆኑን ያረጋግጡ
በ C ደረጃ 1 ውስጥ ባዶ መሆኑን ያረጋግጡ

ደረጃ 1. መደበኛውን ባዶ የቼክ ኮድ ይጠቀሙ።

ባዶ ቼክ ለመፃፍ የሚከተለው በጣም ግልፅ መንገድ ነው። እንጠቀማለን ptr በዚህ ጽሑፍ ውስጥ እርስዎ የሚፈትሹት እንደ ጠቋሚው ስም ነው።

  • ከሆነ (ptr == NULL)

    {

    // ጠቋሚው NULL ከሆነ ኮድ

    } ሌላ {

    // ኮድ NULL ካልሆነ

    }

በ C ደረጃ 2 ውስጥ Null የሚለውን ይፈትሹ
በ C ደረጃ 2 ውስጥ Null የሚለውን ይፈትሹ

ደረጃ 2. NULL ካልሆነ በስተቀር ለማንኛውም እሴት ሙከራ ያድርጉ።

አንዳንድ ጊዜ በእኩልነት አለመመጣጠን መሞከር የበለጠ አመቺ ነው። እዚህ ምንም አስገራሚ ነገሮች የሉም

  • ከሆነ (ptr! = NULL) {

    // ኮድ NULL ካልሆነ

    }

በ C ደረጃ 3 ውስጥ Null የሚለውን ይፈትሹ
በ C ደረጃ 3 ውስጥ Null የሚለውን ይፈትሹ

ደረጃ 3. ስህተቶችን ለማስወገድ መጀመሪያ NULL ን ይፃፉ (ከተፈለገ)።

ለ PTR == NULL ዘዴ ዋነኛው ኪሳራ በምትኩ የ pt = NULL ን የመተየብ ዕድል ነው ፣ የ NULL እሴቱን ለዚያ ጠቋሚ መመደብ። ይህ ከባድ ራስ ምታት ሊያስከትል ይችላል። ለ (ውስጥ) እኩልነት መሞከር ኦፔራኖቹን በተመጣጠነ ሁኔታ ስለሚይዝ ፣ በመፃፍ በትክክል ተመሳሳይ ውጤት ማግኘት ይችላሉ ከሆነ (NULL == ptr) በምትኩ። ድንገተኛ NULL = ptr ቀላል የማጠናከሪያ ስህተት ስለሚፈጥር ይህ የበለጠ ታይፕ-ተከላካይ ነው።

ይህ ለአንዳንድ የፕሮግራም አዘጋጆች ትንሽ አስቸጋሪ ይመስላል ፣ ግን እሱ ፍጹም ትክክለኛ ነው። የትኛውን አቀራረብ እንደሚጠቀሙ በግል ምርጫዎ ላይ ብቻ የሚመረኮዝ ነው ፣ እና (ptr = NULL) ስህተቱን (ኮምፒተርዎ) ስህተትን ለመለየት ምን ያህል ጥሩ ነው።

በ C ደረጃ 4 ውስጥ Null የሚለውን ይፈትሹ
በ C ደረጃ 4 ውስጥ Null የሚለውን ይፈትሹ

ደረጃ 4. ተለዋዋጭው እውነት መሆኑን ይፈትሹ።

አንድ ቀላል ከሆነ (ptr) ptr እውነት መሆኑን ይፈትሻል። Ptr NULL ከሆነ ፣ ወይም ptr 0. ከሆነ ውሸትን ይመልሳል ፣ ልዩነቱ በብዙ ጉዳዮች ላይ ለውጥ አያመጣም ፣ ግን እነዚህ በሁሉም የሕንፃ ሕንፃዎች ውስጥ ተመሳሳይ አለመሆናቸውን ይወቁ።

የዚህ ተቃራኒ ነው ከሆነ (! ptr), ptr ሐሰተኛ ከሆነ እውነቱን ይመልሳል።

ክፍል 2 ከ 2 - ስህተቶችን ማስወገድ

በ C ደረጃ 5 ውስጥ Null የሚለውን ይፈትሹ
በ C ደረጃ 5 ውስጥ Null የሚለውን ይፈትሹ

ደረጃ 1. NULL ን ከመፈተሽ በፊት ጠቋሚ ያዘጋጁ።

አንድ የተለመደ ስህተት አዲስ የተፈጠረ ጠቋሚ የ NULL እሴት አለው ብሎ ማሰብ ነው። ይህ እውነት አይደለም። ያልተመደበ ጠቋሚ እርስዎ የገለፁትን ብቻ ሳይሆን አሁንም ወደ ማህደረ ትውስታ አድራሻ ይጠቁማል። ይህንን የማይጠቅም አድራሻ በአጋጣሚ እንዳይጠቀሙበት ለማረጋገጥ አዲስ የተፈጠሩ ወይም አዲስ የተለቀቁ ጠቋሚዎችን ወደ NULL ማዘጋጀት የተለመደ ተግባር ነው።

  • ይህንን ስህተት ያስወግዱ -

    ቻር *ptr;

    ከሆነ (ptr == NULL)

    {

    // ይህ ሐሰት ይመልሳል። ጠቋሚው ትክክለኛ ዋጋ ተሰጥቶታል።

    }

  • ይልቁንስ ይፃፉ

    ቻር *ptr = NULL; // ይህ ጠቋሚውን ለ NULL ይመድባል

    ከሆነ (ptr == NULL)

    {

    // ጠቋሚው እንደገና ካልተመደበ ይህ TRUE ን ይመለሳል።

    }

በ C ደረጃ 6 ውስጥ Null የሚለውን ይፈትሹ
በ C ደረጃ 6 ውስጥ Null የሚለውን ይፈትሹ

ደረጃ 2. NULL ን መመለስ ለሚችሉ ተግባራት ትኩረት ይስጡ።

አንድ ተግባር NULL ን መመለስ ከቻለ ፣ ይህ ሊሆን የሚችል ስለመሆኑ ያስቡ ፣ እና ያ በኮድዎ ውስጥ በኋላ ላይ ችግር ሊፈጥር ይችል እንደሆነ ያስቡ። ባዶውን ቼክ በመጠቀም የማልሎክ ተግባር ምሳሌ እዚህ አለ (ከሆነ (ptr)) ጠቋሚዎችን ትክክለኛ እሴቶችን ብቻ መያዙን ለማረጋገጥ-

  • int * ptr = malloc (N * sizeof (int));

    ከሆነ (ptr) {

    int i;

    ለ (i = 0; i <N; ++ i)

    ptr = እኔ;

    }

በ C ደረጃ 7 ውስጥ ባዶ መሆኑን ያረጋግጡ
በ C ደረጃ 7 ውስጥ ባዶ መሆኑን ያረጋግጡ

ደረጃ 3. ግልፅ ለማድረግ ከጠቋሚዎች ጋር ሲሰሩ NULL 0 መሆኑን ይረዱ ፣ ግን ሁል ጊዜ ከ 0 ይልቅ NULL ን መጠቀም አለብዎት።

ከታሪክ አኳያ ፣ ሲ NULL ን እንደ ቁጥር 0 (ማለትም ፣ 0x00) ይወክላል። በአሁኑ ጊዜ ትንሽ የበለጠ የተወሳሰበ ሊሆን ይችላል ፣ እና በስርዓተ ክወና ይለያያል። አብዛኛውን ጊዜ NULL ን በመጠቀም ማረጋገጥ ይችላሉ ptr == 0 ፣ ግን ይህ ችግር ሊያስከትል የሚችል የማዕዘን ጉዳዮች አሉ። ምናልባትም ከሁሉም በላይ ፣ NULL ን መጠቀም ኮድዎን ለሚያነቡ ሌሎች ሰዎች ከጠቋሚዎች ጋር እየሰሩ መሆኑን ግልፅ ያደርግልዎታል።

ጠቃሚ ምክሮች

ልክ እንደማንኛውም ሌላ loops በሚሆንበት ጊዜ ይህንን ቼክ መጠቀም ይችላሉ- ሳለ (NULL == ptr) {

የሚመከር: