治療可一std::vector<char>
像這樣的陣列進行處理:能標準::向量像數組
std::vector<char> v(10);
strncpy(&v[0], "hello", 9); // <-- Is this safe?
治療可一std::vector<char>
像這樣的陣列進行處理:能標準::向量像數組
std::vector<char> v(10);
strncpy(&v[0], "hello", 9); // <-- Is this safe?
是的,這很好。從C++ 03開始,vector
需要連續存儲。
從C++ 11開始,順便提一下std::string
也是如此;您可以將v.data()
作爲&v[0]
的同義詞(當v
爲空時也是有效的)。
您提到的*作爲C++ 03 .. *讓我對它是如何在C++ 11中有所懷疑的,所以爲了確認AFAIK,即使在C中,std :: Vector也需要連續存儲++ 11,這是正確的嗎? –
@Als是的,在C++ 11中沒有改變。 – bames53
是的。新標準不會改變vector的存儲要求。在英語中,「asof」與「since」大致意思相同,但意味着更近的事件時間表。 :) –
是的,我打算輸入std :: vector。讓我試着編輯我原來的帖子。 –
user1061590
@TokenMacGuy:那不是'strncpy'的工作方式...... –
我知道這個問題很簡單直接,但是你不應該僅僅依靠標題來彌補問題,而是增加一個真正的問題主體,一個問題。 –