Hàm memset thực sự làm gì?

Cho mình hỏi hàm memset thực sự làm gì? Mình có đoạn code sau:

#include <iostream>
#include <string.h>
using namespace std;

int main()
{
	int *p=new int;
	memset(p,1,sizeof(int));
	cout<<*p<<endl;
}

Và nó in ra 16843009. Mình nghĩ kết quả phải là biểu diễn của dãy nhị phân 32 bit 1 -> 2^(32)-1

Đơn vị cơ bản là byte mà :slight_smile:

1 Like

memset nhận 3 tham số.
Tham số thứ 1 là địa chỉ bắt đầu.
Tham số thứ 2 là giá trị mà sẽ set cho một byte.
Tham số thứ 3 là số byte liên tiếp được set tính từ địa chỉ (tham số đầu tiên).

Như ví dụ trên nó set 4 byte của một số int, mỗi byte có giá trị bằng 1. => giá trị sau khi hàm memset chạy là 0x01010101.

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?