根據輸入字符串長度精確分配 `char*` 數組,不浪費額外空間。
char* newCharArray(const char* src) {
if (!src) return nullptr;
size_t len = strlen(src);
char* dest = new char[len + 1]; // +1 存放 '\0'
strcpy(dest, src);
return dest;
}
// 使用
int main() {
const char* input = "任意長度字符串";
char* arr = newCharArray(input);
// 使用 arr...
delete[] arr; // 釋放
return 0;
}
#include <string>
#include <vector>
std::string s = "任意長度字符串"; // 自動管理內存,支援動態增長
// 或
std::vector vec(s.begin(), s.end());
vec.push_back('\0'); // 若需 C 風格字符串
char* cstr = vec.data();