# Declare a LayoutTensor in a struct?

**URL:** <https://forum.modular.com/t/declare-a-layouttensor-in-a-struct/1669>\
**Category:** Mojo\
**Created:** [June 16, 2025, 1:00pm UTC](https://forum.modular.com/t/declare-a-layouttensor-in-a-struct/1669 "2025-06-16T13:00:23Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![pablomuniz](https://avatars.discourse-cdn.com/v4/letter/p/d6d6ee/32.png) [@pablomuniz](https://forum.modular.com/u/pablomuniz)\
**Post date:** [June 16, 2025, 1:00pm UTC](https://forum.modular.com/t/declare-a-layouttensor-in-a-struct/1669/1 "2025-06-16T13:00:23Z")

</div>

Hi I have a 2D array in an UnsafePointer.

For convenience I would like to use a LayoutTensor all wrapped in a struct:

Problem is that mutability is inferred only in LayoutTensor hence I cant declare the field.

Here is kind of what I am trying to do:

```auto
alias MyLayout = Layout.row_major(1024, 1024)

struct MyStruct:
    var data: UnsafePointer[UInt32]
    var tensor: LayoutTensor[DType.uint32, MyLayout] <--- This guy xD

    fn __init__ (out self):
        self.data = UnsafePointer[UInt32].alloc(1024 * 1024)
        self.tensor = LayoutTensor(self.data)

```

As someone how is trying to understand the Mojonic way to represent a 2D array (compile time size known)?

---

<div class="post-metadata">

**Author:** ![Ehsan](https://sea1.discourse-cdn.com/flex001/user_avatar/forum.modular.com/ehsan/32/142_2.png) [@Ehsan](https://forum.modular.com/u/Ehsan)\
**Post date:** [June 16, 2025, 8:50pm UTC](https://forum.modular.com/t/declare-a-layouttensor-in-a-struct/1669/2 "2025-06-16T20:50:05Z")

</div>

This works with specifying the origin

```mojo
from layout import Layout, LayoutTensor
from memory import UnsafePointer

alias MyLayout = Layout.row_major(1024, 1024)

struct MyStruct:
    var _data: UnsafePointer[UInt32]
    var tensor: LayoutTensor[mut=True, DType.uint32, MyLayout, MutableAnyOrigin]

    fn __init__ (out self):
        self._data = UnsafePointer[UInt32].alloc(1024 * 1024)
        self.tensor = LayoutTensor[
            mut=True, DType.uint32, MyLayout, MutableAnyOrigin
        ](self._data)

    fn __del__ (owned self):
        self._data.free()

fn main():
    var my_struct = MyStruct()
    _ = my_struct.tensor.fill(1)
    print(my_struct.tensor[0, 0])

```

---

<div class="post-metadata">

**Author:** ![pablomuniz](https://avatars.discourse-cdn.com/v4/letter/p/d6d6ee/32.png) [@pablomuniz](https://forum.modular.com/u/pablomuniz)\
**Post date:** [June 17, 2025, 1:29am UTC](https://forum.modular.com/t/declare-a-layouttensor-in-a-struct/1669/3 "2025-06-17T01:29:27Z")

</div>

This is it. Thanks so much!!

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex001/uploads/modular/original/1X/2751e0fbdc595a99718b216730957e9db4448cfd.jpeg) [@system](https://forum.modular.com/u/system)\
**Post date:** [June 24, 2025, 1:30am UTC](https://forum.modular.com/t/declare-a-layouttensor-in-a-struct/1669/4 "2025-06-24T01:30:15Z")

</div>

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.
