.NET 10부터는 일부 배열이 스택에 할당 될 수도 있나봅니다.

배열의 형식이 소형의 값 형식이고, 짧은 수명을 가질때 스택에 할당된다고 합니다.

예시 코드

static void Sum()
{
    int[] numbers = {1, 2, 3};
    int sum = 0;

    for (int i = 0; i < numbers.Length; i++)
    {
        sum += numbers[i];
    }

    Console.WriteLine(sum);
}

원래는 stackalloc 등을 사용해 수동 최적화 하고는 했었는데… 이제 그럴 필요가 거의 줄어든 것 같습니다.

8개의 좋아요

오호,
관련해서 공식 문서가 있다면 같이 첨부해 주시면 좋을 것 같아요!

1개의 좋아요

넵 추가했습니다.

1개의 좋아요

저는 살짝 우려스러운게 흔히 배열은 참조 형식이라고 하잖아요? (스택 배열이나 인라인 배열같은 것들은 넘어가고요) 근데 배열이 스택에 할당될 수 있다니… 닷넷을 처음 배우는 사람들에게 더 힘들어지지 않을까 싶습니다.

2개의 좋아요