Tôi biết điều này sẽ không làm việc vì các biến x bị phá hủy khi trở về chức năng:trở lại dữ liệu khai báo trong hàm
int* myFunction()
{
int x = 4; return &x;
}
vậy làm thế nào để tôi một cách chính xác trả về một con trỏ đến một cái gì đó tôi có thể tạo bên trong hàm và tôi phải chăm sóc gì? Làm cách nào để tránh rò rỉ bộ nhớ? malloc
Tôi cũng đã sử dụng:
int* myFunction2()
{
int* x = (int*)malloc(sizeof int); *x = 4; return x;
}
Làm thế nào để bạn làm một cách chính xác này - trong C và C++?
Bạn có quyền, câu trả lời là 'myFunction2()' bạn chỉ cần nhớ để giải phóng bộ nhớ của bạn sau này. Đó là vấn đề không có bộ thu gom rác – tzenes
Một lần nữa, trong khi C và C++ chia sẻ nhiều tính năng, có nhiều câu hỏi với các câu trả lời hoàn toàn khác nhau tùy thuộc vào ngôn ngữ. Làm thế nào để tránh rò rỉ bộ nhớ là một trong số chúng, vì nó là cách tạo ra một thứ gì đó bên trong một hàm ... Bạn thực sự quan tâm đến ngôn ngữ nào? –