Tôi đang đọc ấn bản thứ 3 của Ngôn ngữ lập trình C++ bởi Bjarne Stroustrup và cố gắng hoàn thành tất cả các bài tập. Tôi không chắc chắn làm thế nào để tiếp cận tập thể dục 13 từ phần 6.6, vì vậy tôi nghĩ rằng tôi muốn chuyển sang Stack Overflow cho một số cái nhìn sâu sắc. Dưới đây là mô tả của vấn đề:C++: Cách sử dụng mới để tìm cửa hàng cho giá trị trả về hàm?
Viết một hàm mèo() mà phải mất hai đối số chuỗi C-phong cách và trả về một chuỗi duy nhất đó là nối của các đối số. Sử dụng mới để tìm cửa hàng cho kết quả.
Dưới đây là mã của tôi vậy, đến nay, với dấu hỏi nơi tôi không biết phải làm gì:
? cat(char first[], char second[])
{
char current = '';
int i = 0;
while (current != '\0')
{
current = first[i];
// somehow append current to whatever will eventually be returned
i++;
}
current = '';
i = 0;
while (current != '\0')
{
current = second[i];
// somehow append current to whatever will eventually be returned
i++;
}
return ?
}
int main(int argc, char* argv[])
{
char first[] = "Hello, ";
char second[] = "World!";
? = cat(first, second);
return 0;
}
Và đây là câu hỏi của tôi:
- Làm thế nào để sử dụng mới để tìm cửa hàng? Tôi có dự kiến sẽ làm điều gì đó như
std::string* result = new std::string;
hoặc tôi có nên sử dụng mới để tạo một chuỗi kiểu C khác không? - Liên quan đến câu hỏi trước, tôi nên trở về từ con mèo nào()? Tôi cho rằng nó sẽ cần phải là một con trỏ nếu tôi phải sử dụng mới. Nhưng một con trỏ đến những gì?
- Mặc dù sự cố không đề cập đến việc sử dụng xóa để giải phóng bộ nhớ, tôi biết tôi nên vì tôi đã sử dụng mới để cấp phát. Tôi có nên chỉ cần xóa vào cuối của chính, ngay trước khi trở về?
+1 Câu hỏi được sáng tác độc đáo. – Sabuncu