# ConvertExistingDataToNativeArray

> Converts a buffer to a NativeArray.

## Definition

* **Type:** Method
* **Namespace:** [Unity.Collections.LowLevel.Unsafe](/engine/6000.6/script-reference/unity/collections/lowlevel/unsafe.md)
* **Assembly:** UnityEngine.CoreModule

## ConvertExistingDataToNativeArray\<T>(void\*, int, Allocator)

Converts a buffer to a NativeArray.

```csharp
public static NativeArray<T> ConvertExistingDataToNativeArray<T>(void* dataPointer, int length, Allocator allocator) where T : struct
```

### Parameters

**** (\[void\*]\(https\://learn.microsoft.com/dotnet/api/system.void)): Pointer to the preallocated data.**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): Number of elements. The length of the data in bytes is computed automatically from this.**** (\[Allocator]\(/engine/6000.6/script-reference/unity/collections/allocator)): The [Allocator](/engine/6000.6/script-reference/unity/collections/allocator.md) type to use.

### Returns

| Type                                                                                 | Description                                                                                      |
| ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ |
| [NativeArray\<T>](/engine/6000.6/script-reference/unity/collections/nativearray1.md) | A new NativeArray, allocated with the given `allocator` strategy and wrapping the provided data. |

### Remarks

You can use this method to turn an existing buffer into a NativeArray. Ownership of the data is controlled via the allocation strategy that the allocator argument provides. Use [Allocator.None](/engine/6000.6/script-reference/unity/collections/allocator/none.md) if the data is owned externally, and the other arguments to transfer control to the NativeArray.

## ConvertExistingDataToNativeArray\<T>(Span\<T>, Allocator)

Converts a buffer to a NativeArray.

```csharp
public static NativeArray<T> ConvertExistingDataToNativeArray<T>(Span<T> data, Allocator allocator) where T : unmanaged
```

### Parameters

**** (\[Span\<T>]\(https\://learn.microsoft.com/dotnet/api/system.span-1)): Span of the preallocated data.**** (\[Allocator]\(/engine/6000.6/script-reference/unity/collections/allocator)): The [Allocator](/engine/6000.6/script-reference/unity/collections/allocator.md)] type to use.

### Returns

| Type                                                                                 | Description                                                                                      |
| ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ |
| [NativeArray\<T>](/engine/6000.6/script-reference/unity/collections/nativearray1.md) | A new NativeArray, allocated with the given `allocator` strategy and wrapping the provided data. |

### Remarks

You can use this method to turn an existing buffer into a NativeArray. Ownership of the data is controlled via the allocation strategy that the allocator argument provides. Use [Allocator.None](/engine/6000.6/script-reference/unity/collections/allocator/none.md) if the data is owned externally, and the other arguments to transfer control to the NativeArray.
