2013-05-06 37 views
0

我想要使用字符串或字符變量的大小可以動態更改。不需要指定大小,並且在代碼中可以添加一個單元格並將新的字符插入到單元格中。我使用此代碼進行此操作:
char *align_A = (char*)malloc(lenMax*sizeof(char));
是否有另一種方法,我不需要指定大小(在此爲lenMax),以及何時需要向數組或內存中添加新的字符,動態添加單元格並插入字符字符成。我可以使用string進行此操作嗎?
例如:先添加到alignA,A字符,一個字符B大小的內存或磁盤陣列改變,並添加B插入和...動態更改字符變量的大小

回答

7

由於您使用C++而不是C,使用std::stringstd::vector,他們會讓你的生活變得更容易,因爲它們專爲你描述的任務而設計。

如果您確實想堅持char *,那麼請檢查C風格的realloc函數。

0

您可以使用std::stringpush_back方法達到此目的。它直接在字符串的末尾附加一個新的字符。 std庫處理內存問題本身

0

您需要動態創建陣列並從堆中獲取內存。您可以使用new命令或malloc。 它會在堆上分配內存,但是使正常定義中的數組將使用堆棧內存。