Câu trả lời:
Bạn cần phải thêm:
#include <stdlib.h>
Tệp này bao gồm phần khai báo cho hàm tích hợp sẵn malloc
. Nếu bạn không làm điều đó, trình biên dịch nghĩ rằng bạn muốn xác định hàm của riêng mình được đặt tên malloc
và nó cảnh báo bạn vì:
int
, không tương thích với trong malloc
, lấy a size_t
và trả về a void*
).Bạn chưa làm được #include <stdlib.h>
.
Tạo thói quen tìm kiếm chức năng của bạn khi được trợ giúp.
Hầu hết trợ giúp cho C được mô phỏng trên các trang hướng dẫn sử dụng unix.
Sử dụng:
man malloc
cho kết quả khá hữu ích.
Googling man malloc
sẽ cho bạn thấy ý tôi.
Trong unix, bạn cũng nhận được apropos cho những thứ có liên quan.
#include <stdlib.h>
trong phần tóm tắt nghĩa là bạn phải viết dòng đó vào chương trình của mình.
Bên cạnh những câu trả lời rất hay khác, tôi muốn thực hiện một chút ý kiến và đề cập đến những điều chưa được thảo luận trong các câu trả lời khác.
Khi bạn ở Linux, Để sử dụng malloc()
mã của bạn,
Bạn không thực sự phải làm như vậy #include <stdlib.h>
.
(Mặc dù việc sử dụng stdlib.h
là rất phổ biến và có lẽ mọi chương trình không phải là chương trình đồ chơi đều nên bao gồm nó theo cách nào đó vì nó cung cấp một loạt các chức năng và macro thư viện chuẩn C hữu ích)
Bạn cũng có thể #include <malloc.h>
thay thế.
Nhưng xin lưu ý rằng việc sử dụng malloc.h
không còn được dùng nữa và nó làm cho mã của bạn không di động được. Nếu bạn muốn sử dụng, malloc()
bạn nên luôn luôn và mãi mãi (ngoại trừ những lý do rõ ràng để làm khác) #include <stdlib.h>
.
Lý do tại sao , được giải thích tốt nhất trong các câu trả lời cho câu hỏi này: