MemClear(void*, long)
Clears a block of memory, setting all bytes to zero.
Read time 1 minuteLast updated 13 days ago
Definition
- Type: Method
- Namespace: Unity.Collections.LowLevel.Unsafe
- Assembly: UnityEngine.CoreModule
public static void MemClear(void* destination, long size)
Parameters
Remarks
The method sets all bytes in a specified memory block to zero. This is useful for initializing memory without any residual data that might cause unexpected behavior. Use this method to ensure memory safety when reusing or reallocating memory blocks.
MemClearThis method provides a fast and efficient way to clear data, which is important in scenarios where performance and reliability are paramount. It is often used when you need to reset arrays or buffers before further processing.
using UnityEngine;using Unity.Collections.LowLevel.Unsafe;public class MemClearExample : MonoBehaviour{ void Start() { int bufferSize = 10; // Allocate a buffer using stackalloc unsafe { byte* buffer = stackalloc byte[bufferSize]; // Initialize the buffer with some data for (int i = 0; i < bufferSize; i++) { buffer[i] = (byte)(i + 1); } // Output the buffer contents before clearing Debug.Log("Buffer contents before MemClear:"); for (int i = 0; i < bufferSize; i++) { Debug.Log(buffer[i]); } // Clear the buffer using MemClear UnsafeUtility.MemClear(buffer, bufferSize); // Output the buffer contents after clearing Debug.Log("Buffer contents after MemClear:"); for (int i = 0; i < bufferSize; i++) { Debug.Log(buffer[i]); // Expected output: 0 for each element } } }}
Additional Resources: UnsafeUtility.MemSet.