c - Why does the cstdlib strncpy crash whilst copying a char array to a character pointer -


यह मेरा कोड है:

  char * toc (char src [STRING_SIZE], char * Dest) {if (src [0] == 0) dest = NULL; अन्य strncpy (dest, & src [0], आकार_टी (strlen (src))); }   

इसे कैसे बुलाया जाता है:

  typedef struct sdata {char * point_one; } tsdata tsdata sdata; चार नाम [STRING_SIZE] = "point_data"; TOC (नाम, sdata.point_one);   

strncpy हमेशा क्रैश करता है

मैं क्या कर रहा हूँ गलत?

यह कोड:

  typedef struct sdata {char * point_one; } tsdata tsdata sdata; चार नाम [STRING_SIZE] = "point_data"; TOC (नाम, sdata.point_one);   

कॉल Toc दूसरे तर्क के साथ एक अनिर्धारित संकेतक, जो कि मूल्य से पारित होता है।

उस अनिश्चित मूल्य


सामान्य टिप्पणियां।


इस फ़ंक्शन घोषणा में , <पूर्व> शून्य TOC (char src [STRING_SIZE], char * dest)

  • STRING_SIZE द्वारा उपेक्षित है संकलक और निम्न कोड के लिए उपलब्ध नहीं है।

    और इस कोड स्निपेट में:

      if (src [0] == 0) dest = NULL;   
    • असाइनमेंट एक स्थानीय चर (एक फ़ंक्शन तर्क) का मान बदलता है, जिसका उपयोग फ़ंक्शन में नहीं किया जाता है।
      < p> इसके अलावा, अपडेट किए गए प्रश्न के लिए जहां फ़ंक्शन घोषणा को
        char * ToC (char src [STRING_SIZE], char * dest) में बदल दिया गया था   
      • फ़ंक्शन में return कथन नहीं है, इसलिए फ़ंक्शन परिणाम का कोई भी उपयोग अपरिभाषित व्यवहार है।

Comments

Popular posts from this blog

Verilog Error: output or inout port "Q" must be connected to a structural net expression -

jasper reports - How to center align barcode using jasperreports and barcode4j -

c# - ASP.NET MVC - Attaching an entity of type 'MODELNAME' failed because another entity of the same type already has the same primary key value -