Nếu tôi chuyển một char * vào một hàm. Tôi muốn sau đó đi mà char * chuyển đổi nó thành một chuỗi std :: và một khi tôi nhận được kết quả của tôi chuyển đổi nó trở lại char * từ một std :: string để hiển thị kết quả.cách sao chép char * thành chuỗi và ngược lại
- Tôi không biết làm thế nào để làm điều này cho chuyển đổi (Tôi không nói const char * nhưng chỉ char *)
- Tôi không chắc chắn làm thế nào để thao tác các giá trị của con trỏ tôi gửi trong.
nên bước tôi cần phải làm
- mất trong một char *
- chuyển đổi nó thành một chuỗi.
- lấy kết quả của chuỗi đó và đặt nó trở lại dưới dạng char *
- trả về kết quả sao cho giá trị phải có sẵn bên ngoài hàm và không bị hủy.
Nếu có thể, tôi có thể xem cách nó có thể được thực hiện thông qua tham chiếu so với con trỏ (có địa chỉ mà tôi chuyển vào theo giá trị. Tuy nhiên, tôi vẫn có thể sửa đổi giá trị mà con trỏ trỏ tới. địa chỉ trong hàm bị phá hủy tôi vẫn nhìn thấy giá trị thay đổi bên ngoài
nhờ
"chuyển đổi lại thành char * từ chuỗi std :: để hiển thị kết quả". - tại sao bạn không thể hiển thị kết quả khi nó là một chuỗi? Nên có thể làm std :: cout << my_string; –
đây là giao diện tôi phải làm việc. vì vậy mặc dù tôi sử dụng chuỗi bất cứ khi nào tôi có thể nếu một giao diện yêu cầu char * thì đó là những gì tôi phải sử dụng. tham số đầu ra chức năng là một char * ... và đó là những gì tôi phải làm việc với – user295030
Trong trường hợp đó, giao diện nên nói điều gì đó về quản lý bộ nhớ. Tôi nói "nên" bởi vì nó * có thể * không - một số giao diện được xác định kém, thực tế của cuộc sống. Bất cứ khi nào bạn trả về một con trỏ từ một hàm, bạn cần phải nói ai chịu trách nhiệm phân bổ dữ liệu được trỏ đến, thời gian nó vẫn hợp lệ và ai chịu trách nhiệm giải phóng nó (nếu có). Nếu bạn có thể làm việc đó, bạn có thể tìm ra cách trả về một giá trị con trỏ thích hợp. –