上面的dest_src進行了強制型別轉換,下面的free也需要強制型別轉換一下,不然系統以為程式釋放了不該釋放的記憶體所以就報錯嘍。..
....
對程式不理解之處:
一、在strcpy()這裡
.二、free()
這裡出錯了
.strcpy()函式是c語言中的乙個複製字串的庫函式,不會考慮接收複製資訊的陣列的大小,因此在使用堆區儲存的時候,給接收複製資訊的陣列分配相同大小或者更大的空間。
.char *strcpy(char *dst, const char *src)
;
#define _crt_secure_no_warnings
//(只會在該檔案裡起作用)
#include
#include
#include
#define func_chioce 1
//定義了第一種方法
#if (func_chioce == 1)
void
change_ab
(char
*a,char
*b)#elif (func_chioce == 2)
void
change_ab
(char
*a,char
*b)//這裡另外乙個文章有詳細解釋
#elif(func_chioce == 3)
void
change_ab
(char
*a,char
*b)#endif
/* 字串反轉函式,返回字串,char型別指標 */
char
*str_reverse
(char
* src_str)
return dest_str;
//為什麼要設定dest_str, 指標以及返回ret指標的位置[3],由於目的指標dst已經在進行移動了,所以用輔助指標ret表明首指標;(忘記為什麼這樣解釋了,,,)
}/* 主函式 */
intmain()
char
*p =
str_reverse
(src_str)
;strcpy
(dest_str, p)
;printf
("after reverse: %s\n"
, dest_str)
;
.
直接 char *p = str_reverse(src_str); 這一步就可以了 這一步已經拿到結果存在棧記憶體中
.
#define _crt_secure_no_warnings
//(只會在該檔案裡起作用)
#include
#include
#include
#define func_chioce 1
//定義了第一種方法
#if (func_chioce == 1)
void
change_ab
(char
*a,char
*b)#elif (func_chioce == 2)
void
change_ab
(char
*a,char
*b)#elif(func_chioce == 3)
void
change_ab
(char
*a,char
*b)#endif
/* 字串反轉函式 */
char
*str_reverse
(char
* src_str)
return src_str;
}/* 主函式 */
intmain()
字串倒序排列
str whoareyou 一,使用內建函式strrev 二,二分法,將字串按照首尾呼應的格式調換順序 012345678 9 0 1 012345678 9 1 1 012345678 9 2 1 len strlen str 不能使用count或sizeof mid floor len 2 二分...
字串倒序
題目描述 給定任意乙個字串序列,將該字串在原有的儲存空間內倒序。輸入輸入乙個字串,如 abcdefg123 輸出輸出倒序後的字串,如 321gfedcba 樣例輸入 abcdefg123 樣例輸出 321gfedcba 提示1.編寫乙個 main 函式實現該功能演算法。地區 南京研究所 public...
字串倒序
string 倒序,利用string是tochararray,在倒序輸出 private static void reversestring1 string str 利用string提供的substring 方法,利用遞迴的方法倒序字串 private static void reversestri...