: String create_string( size_t max_length ) {
: String ret = (String)malloc(max_length+1);
: return ret[ 0 ] = '\0', ret;
: }
試了一下發現將string size設5
也就是String ret=(String)malloc(5)
居然也能成功??
: void release_string( String target ) {
: free( target );
: }
想請問 return ret[0]='\0' 這邊是將ret字串的開頭設為結尾??
: main() 經改寫變成這樣:
: int main()
: {
: String str = create_string( 5 );
: strcpy( str, "12345" );
如此一來的話
將12345 copy到 str中 str的分配是如何呢?
是 \0 1 2 3 4 5?
: reverse( str );
: puts( str );
: release_string( str );
: return 0;
: }
: 這裡是 reverse() 的程式碼:
: void reverse( String str )
: {
: size_t left = 0, right = strlen(str)-1;
: for ( ; left < right; ++left, --right ) {
: char temp = str[left];
: str[left] = str[right];
: str[right] = temp;
: }
: }
非常感謝願意花時間指導
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.36.217.113
→
02/19 23:19, , 1F
02/19 23:19, 1F
→
02/19 23:56, , 2F
02/19 23:56, 2F
→
02/20 00:16, , 3F
02/20 00:16, 3F
→
02/20 00:18, , 4F
02/20 00:18, 4F
→
02/21 17:57, , 5F
02/21 17:57, 5F
討論串 (同標題文章)