字串操作。謝謝

uj5u.com熱心網友回復:
你這代碼我看著就很不理解,你的 buf 和pkey為什么沒有分配空間也可以直接用啊?uj5u.com熱心網友回復:
你這個程式居然能跑起來。。。記憶體越界了啊,一個指標不能存東西的,要么定義成char陣列,要么用malloc動態分配uj5u.com熱心網友回復:
*( pkey+pos) = *( buf+pos); 一樣結果。
uj5u.com熱心網友回復:
...不是這個問題,我不理解的是你的 buf 是個指標,沒有分配記憶體,pkey 也是,為啥能跑起來,是什么編譯器和運行環境啊?你執行的 cfg 這個二進制程式,是你代碼編譯出來的嗎?
uj5u.com熱心網友回復:
本身代碼的邏輯上,沒有什么問題,pkey多賦值了一個空格,影響不大,就是為啥能執行,我很好奇uj5u.com熱心網友回復:
你這代碼我看著就很不理解,你的 buf 和pkey為什么沒有分配空間也可以直接用啊?
*( pkey+pos) = *( buf+pos); 一樣結果。
...不是這個問題,我不理解的是你的 buf 是個指標,沒有分配記憶體,pkey 也是,為啥能跑起來,是什么編譯器和運行環境啊?你執行的 cfg 這個二進制程式,是你代碼編譯出來的嗎?
buf 在fgets函式分配了記憶體,pkey 和buf指向同一字串了?
uj5u.com熱心網友回復:
你這代碼我看著就很不理解,你的 buf 和pkey為什么沒有分配空間也可以直接用啊?
*( pkey+pos) = *( buf+pos); 一樣結果。
...不是這個問題,我不理解的是你的 buf 是個指標,沒有分配記憶體,pkey 也是,為啥能跑起來,是什么編譯器和運行環境啊?你執行的 cfg 這個二進制程式,是你代碼編譯出來的嗎?
buf 在fgets函式分配了記憶體,pkey 和buf指向同一字串了?
關鍵你并沒有這樣的賦值操作呀...你不如回圈結束后給 pkey[pos] 賦值 '\0' 再列印看看,或者回圈結束后列印 pos 的值,才能確定是不是沒有被 != '=' 卡住
uj5u.com熱心網友回復:
pkey是野指標,沒看到它指向可以正常讀寫的記憶體區域,也沒有malloc呢。怎么可以使用呢?即使能夠用,但不能保證一直能用~
還有pkey即使指向了可以讀寫的記憶體,那么遇到'='沒有加'\0',%s輸出的時候會繼續向后輸出,直到遇到'\0'
uj5u.com熱心網友回復:
你這代碼我看著就很不理解,你的 buf 和pkey為什么沒有分配空間也可以直接用啊?
*( pkey+pos) = *( buf+pos); 一樣結果。
...不是這個問題,我不理解的是你的 buf 是個指標,沒有分配記憶體,pkey 也是,為啥能跑起來,是什么編譯器和運行環境啊?你執行的 cfg 這個二進制程式,是你代碼編譯出來的嗎?
buf 在fgets函式分配了記憶體,pkey 和buf指向同一字串了?
也沒看到pkey指向buf的操作呢
uj5u.com熱心網友回復:
你這代碼我看著就很不理解,你的 buf 和pkey為什么沒有分配空間也可以直接用啊?
*( pkey+pos) = *( buf+pos); 一樣結果。
...不是這個問題,我不理解的是你的 buf 是個指標,沒有分配記憶體,pkey 也是,為啥能跑起來,是什么編譯器和運行環境啊?你執行的 cfg 這個二進制程式,是你代碼編譯出來的嗎?
buf 在fgets函式分配了記憶體,pkey 和buf指向同一字串了?
也沒看到pkey指向buf的操作呢
FREEBSD CC
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/214389.html
標籤:C語言
