<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                ~~~ char carr[] = "author:CSDN-iaccepted"; ~~~ 此時,carr數組中元素的個數為21,最后一個位置用來存放空字符'\0'。 所以如果寫成carr[21] = "author:CSDN-iaccepted";就是錯誤的。 ~~~ int clen = strlen(carr); int size = sizeof(carr); ~~~ 這時候得到的clen = 21,size= 22。這就是因為strlen統計串中字符的個數,不計算最后的空字符,但是sizeof 是得到carr這整個字符串分配的內存大小,因為最后必須留一個位置來存放空字符,所以,占用22個內存單元,又因為1個字符類型占用1個字節,所以結果返回22(22個字節的內存空間)。 strcpy(char *dest,const char *src);這個函數在用的時候要注意,如下 ~~~ char src[] = "helloworld"; char dest[] = "hello"; ~~~ 這個時候執行strcpy(dest,src);會導致程序溢出而崩潰,所以通常的方法就是使用strncpy來代替strcpy。 strncpy的最后一個參數為size_t 類型的計數count,指明要拷貝長度。這個長度指定為strlen(dest)很合適了,因為strlen返回值不計算最后一個空字符,這樣,src字符串的長度如果超過dest,那么只會拷貝跟dest一樣的長度,這樣dest的末尾正好還是有一個空字符的,這樣是不會出錯的。但是有的時候我們定義的src不一定含有末尾的空字符,這個時候strlen(str)就會出錯。如下 ~~~ char src[] = {'h','e','l','l','o'}; char dest[] = "he"; ~~~ 這個時候就不能將拷貝長度指定為strlen(dest),所以一般情況下指定為strlen(dest)是非常危險的操作。這個時候要用到的就是sizeof了。 ~~~ strncpy(dest,src,sizeof(dest)); dest[sizeof(dest)-1] = 0; ~~~ 這樣兩條指令配合使用就不會發生錯誤了,所以,這里兩行指令是拷貝字符串最安全的寫法了(個人覺得)。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看