void main()
{
char s[100]="hello";
char *t;
t=(char*)malloc(100);
strcpy(t,s);
}
或者,我們可以分配給s
t
這樣的:t=s;
。使用替代品的缺點是什麼?在優勢下使用strcpy函數
void main()
{
char s[100]="hello";
char *t;
t=(char*)malloc(100);
strcpy(t,s);
}
或者,我們可以分配給s
t
這樣的:t=s;
。使用替代品的缺點是什麼?在優勢下使用strcpy函數
如果您指定t=s
每個更改應用於t
指向的內存塊將影響s
,這可能不是您想要的。
此外,你可能想看看this post。
當使用像t = s這樣的簡單賦值時,實際上並沒有複製字符串,而是使用兩個不同的名稱引用相同的字符串。
變量t
的值是一個或多個連續的位置。當您執行t = s
時,您正在將char s[0]
的位置複製到t
(並替換來自malloc()
的舊值t
)。 t[0]
和s[0]
現在指的是完全相同的字符 - 修改一個將通過另一個可見。
當您使用strcpy(t, s)
時,您正在將實際字符從一個位置複製到另一個位置。
前者就像在同一棟房子上放兩個房號。後者就像是將所有的傢俱完全複製到一個房子裏,並放入第二個房子中。
strcpy()
功能用於複製一個到另一個字符串,你誤用它你可以很容易地做到了像指針here.When工作,
t=s;
指針「T」得到的基址字符串's',這就是指針的用途。另一方面你strcpy的工作。你做一個指針存儲整個STRING。。
此代碼剛剛破解。 – 2010-12-08 17:41:22