những gì khác biệt giữa MALLOC & MỚI, miễn phí & dele

S

sacrpio

Guest
xin chào,
Xin vui lòng cho tôi biết những gì đang có sự khác nhau giữa malloc & mới, xóa & miễn phí

bye ..

 
Malloc => Sử dụng một biến hiện nay và chỉ định một kích thước khác nhau phân bổ bộ nhớ cho nó.
Mới => Tạo một bộ nhớ hoàn toàn mới phân bổ cho varible.
Xóa => Xóa hiện nay bộ nhớ phân bổ chỉ mục và biến.(Điều này tiêu hủy biến completly. Có thể sử dụng nó, không bao giờ trở lại.)
Miễn phí => miễn phí bộ nhớ được gán cho các biến, nhưng lại biến chỉ mục.

Malloc miễn phí và làm việc cùng nhau và các công trình mới và Xóa lại với nhau.

: sm35:

 
Tôi hứa bài viết này là hữu ích cho bạn:
Để mới là C
/ C ; Để malloc là C; Để kết hợp chúng là phạm tội

 
Điều đó là không đúng!
does memory allocation and returns a pointer to the allocated memory.

malloc
hiện phân bổ bộ nhớ và trả về một trỏ đến cấp bộ nhớ.searches the available free memory pool for a place which can hold the requested number of bytes, allocates it (remove it from the free part of the memory and keep some kind of index).

malloc
tìm kiếm các bộ nhớ có sẵn hồ bơi miễn phí cho một nơi mà có thể giữ được yêu cầu số byte, allocates nó (xoá bỏ nó từ miễn phí một phần của bộ nhớ và giữ một số loại chỉ mục).(Frikki
của người giải thích như vậy là sai!!!)
frees the memory at the specified adres.

phóng bộ nhớ miễn phí
tại địa chỉ được chỉ định.Có thể là những điểm vẫn còn trỏ vào bộ nhớ rằng các dữ liệu chính xác là vẫn còn ở nơi đó!

Mã số:

int * intArray;

/ / 10 int phân bổ các biến trong một phần bộ nhớ liên tục

intArray = malloc (10 * sizeof (int));/ / Phần miễn phí bộ nhớ lại (do đó bạn không có bộ nhớ leaks)

miễn phí (intArray);
 
Nếu bạn trong chương trình C
/ C mới và xóa.Nếu C thì malloc và miễn phí (ít nhất)

 
Nếu bạn viết và biên soạn một chương trình C
/ C bằng cách sử dụng microsoft hay borland compilers, mà tuyên bố một mảng đơn giản, (int * Tôi mới int = [20]

<img src="http://www.edaboard.com/images/smiles/icon_wink.gif" alt="Wink" border="0" />

và sau đó decompile nó và nhìn vào danh sách, với các biến thể giữa compilers chút, bạn sẽ thấy rằng các cuộc gọi malloc mới để phân bổ bộ nhớ từ các ban ơn, và xóa các cuộc gọi miễn phí để phát hành bộ nhớ.(và tại sao lại không, họ có thời gian thử nghiệm, rắn thói quen?)
Điều gì mới và xóa gì bạn làm, là GUARANTEE, để trả lại hoặc tiêu diệt, một trỏ về đúng loại.Như C
/ C là một cố gắng rất nhiều loại ngôn ngữ.
Trong C, bạn cần phải typecast, với sizeof, việc trả lại trỏ loại khi sử dụng malloc, như malloc trả về một trỏ void.

 
is equivalent to malloc
with some extra's (initialization of members, overloading, ...)

Vâng, đó mới
có nghĩa là tương đương với malloc
với một số bổ sung
của (initialization của các thành viên, bị quá tải, ...)

<img src="http://www.edaboard.com/images/smiles/icon_wink.gif" alt="Wink" border="0" />Cuốn sách "Lập trình Object Oriented Với ANSI C" là thú vị để đọc ở đây.(http://www.planetpdf.com/codecuts/pdfs/ooc.pdf)

Nhưng nó không có nghĩa là C
/ C là phiên dịch cho rằng mã C trước khi nó được biên soạn

<img src="http://www.edaboard.com/images/smiles/icon_wink.gif" alt="Wink" border="0" />

.

 

Welcome to EDABoard.com

Sponsor

Back
Top