+1

Từ khóa fixed trong C#.

Trong C#, từ khóa fixed được sử dụng để giới hạn một biến có kiểu con trỏ (pointer) trong một khối mã (block) và đảm bảo rằng biến đó không thay đổi địa chỉ của con trỏ khi chương trình đang chạy, giúp tránh lỗi trỏ đến vùng nhớ không hợp lệ (dangling pointers) và tăng tính ổn định của ứng dụng trong trường hợp sử dụng con trỏ không an toàn.

Cú pháp cơ bản của fixed là:

fixed (type* pointerName = &variable)
{
    // Mã xử lý sử dụng biến con trỏ
}

Dưới đây là một ví dụ về cách sử dụng fixed để làm việc với một mảng byte không an toàn:

using System;

class Program
{
    static void Main()
    {
        byte[] buffer = new byte[10];

        unsafe
        {
            fixed (byte* ptr = buffer)
            {
                // Sử dụng con trỏ để thao tác trực tiếp với dữ liệu
                for (int i = 0; i < 10; i++)
                {
                    ptr[i] = (byte)(i + 65); // Gán các giá trị từ 'A' đến 'J' vào mảng
                }
            }
        }

        // In mảng
        Console.Write("Mảng buffer: ");
        for (int i = 0; i < buffer.Length; i++)
        {
            Console.Write((char)buffer[i] + " ");
        }
    }
}

Lưu ý rằng việc sử dụng fixed yêu cầu bạn phải bật chế độ "unsafe" trong dự án C# của bạn, và sử dụng con trỏ không an toàn có thể dẫn đến lỗi và vấn đề về bảo mật nếu không được sử dụng đúng cách. Do đó, bạn nên sử dụng fixed cẩn thận và chỉ khi thực sự cần thiết.


All Rights Reserved

Viblo
Let's register a Viblo Account to get more interesting posts.