Rate this post

Các bài viết liên quan:

memset là một hàm trong thư viện cstring của C++, nó có tác dụng gán giá trị cho một vùng bộ nhớ đã cho. Hàm memset có cấu trúc như sau:

void* memset ( void* ptr, int value, size_t num );

Trong đó:

  • ptr là con trỏ đến vùng bộ nhớ cần gán giá trị.
  • value là giá trị cần gán, nó sẽ được ép kiểu về kiểu unsigned char trước khi gán.
  • num là số lượng byte cần gán giá trị.

Ví dụ :

int a[5];
memset(a, 0, sizeof(a)); // gán giá trị 0 cho tất cả các phần tử của mảng a

hoặc

char str[100];
memset(str, '*', sizeof(str)); // gán giá trị '*' cho tất cả các phần tử của chuỗi str.

Memset là một hàm rất hữu ích để gán giá trị cho một vùng bộ nhớ một cách nhanh chóng, nó còn có thể sử dụng để reset lại một biến hoặc mảng.

khi nào nên sử dụng memset trong C++

Khi bạn muốn gán giá trị cho một vùng bộ nhớ nhanh chóng, ví dụ như gán giá trị 0 cho một mảng hoặc chuỗi để reset lại hoặc khởi tạo giá trị ban đầu.

Khi bạn muốn gán giá trị cho một vùng bộ nhớ nhanh chóng, ví dụ như gán giá trị 0 cho một mảng hoặc chuỗi để reset lại hoặc khởi tạo giá trị ban đầu.

Nếu bạn muốn chèn một giá trị cố định vào một vùng nhớ, ví dụ như gán giá trị 0 hoặc -1 vào một mảng để tạo một mảng rỗng hoặc mảng không hợp lệ.

Khi bạn muốn gán giá trị cho một vùng bộ nhớ một cách nhanh chóng, ví dụ như gán giá trị 0 hoặc -1 vào một mảng để tạo một mảng rỗng hoặc mảng không hợp lệ.

Khi bạn muốn gán giá trị cho một vùng bộ nhớ một cách nhanh chóng, ví dụ như gán giá trị 0 hoặc -1 vào một mảng để tạo một mảng rỗng hoặc mảng không hợp lệ.

Memset còn có thể sử dụng để gán giá trị cố định cho một vùng bộ nhớ, ví dụ như gán giá trị 0 hoặc -1 vào một mảng để tạo một mảng rỗng hoặc mảng không hợp lệ, hoặc gán giá trị ‘*’ cho một chuỗi để khởi tạo chuỗi trống.

Tuy nhiên, chúng ta nên chú ý đến việc sử dụng memset cẩn thận vì nó sẽ gán giá trị cho tất cả các byte trong vùng bộ nhớ được chỉ định, nếu không chú ý kỹ lưỡng có thể gây ra lỗi trong chương trình của bạn. Ngoài ra, nếu bạn muốn gán giá trị cho một vùng nhớ cụ thể, ví dụ như chỉ gán giá trị cho một phần của mảng hoặc chuỗi, thì nên sử dụng vòng lặp hoặc các hàm khác.

một vài ví dụ sử dụng memset trong C++

Ví dụ 1: Khởi tạo mảng giá trị ban đầu bằng 0

int a[5];
memset(a, 0, sizeof(a)); // gán giá trị 0 cho tất cả các phần tử của mảng a

Ví dụ 2: Khởi tạo chuỗi giá trị ban đầu bằng ‘*’

char str[100];
memset(str, '*', sizeof(str)); // gán giá trị '*' cho tất cả các phần tử của chuỗi str.

Ví dụ 3: Khởi tạo vùng nhớ chứa một số biến với giá trị ban đầu -1

struct myStruct {
    int a;
    double b;
    char c;
};
myStruct s;
memset(&s, -1, sizeof(s)); // gán giá trị -1 cho tất cả các phần tử của struct s

Ví dụ 4: Clear buffer

char buffer[100];
cin.getline(buffer,100);
memset(buffer,0,sizeof(buffer));

Ví dụ trên chỉ là một số ví dụ về cách sử dụng memset trong C++, bạn có thể sử dụng memset cho nhiều mục đích khác nhau tùy thuộc vào nhu cầu của chương trình.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Contact Me on Zalo
Call now