Tôi thường lập trình trong c + +, nhưng đang sử dụng một số hàm clibrary cho char * của tôi. Một số trang con người thích 'getline', nói rằng đầu vào phải là một mảng được tạo khối.là có một sự khác biệt giữa mảng malloced và mảng mới
OK, để sử dụng 'mới' thay thế?
Tôi có thể thấy cho mẫu nhỏ của tôi rằng nó hoạt động, nhưng điều này có thể tại một số điểm kết quả trong một số hành vi không xác định lạ?
Tôi biết rằng 'mới' phải khớp với 'xóa' và 'quảng cáo' với 'miễn phí'.
Tôi cũng không sử dụng std :: string. Và điều này là cố ý.
Cảm ơn
Không có điều gì không ổn. Nhưng nếu bạn đang sử dụng C + + tại sao không sử dụng std :: getline()? –
Bất cứ khi nào bạn thấy một cái gì đó như thế này trong tài liệu, bạn cần đào sâu hơn và tìm hiểu xem họ có gợi ý một con trỏ 'malloced' hay không vì chúng đang sử dụng thuật ngữ C hoặc vì hàm này được gọi là realloc() hoặc free(). Các câu trả lời bình chọn cao nhất dưới đây cho rằng câu trả lời trước đây mặc dù tôi tin rằng chức năng mà bạn đang đề cập đến phải thực hiện với chức năng thứ hai như Martin đã chỉ ra. Bạn không nên ghép cặp malloc/miễn phí và mới/xóa không chính xác, vì vậy tốt nhất bạn nên thực hiện nghiên cứu bổ sung về các chức năng cụ thể mà bạn đang gọi khi điều này xuất hiện. –