首页 > 解决方案 > HLSL - 为什么我不能重新定义这个数组?

问题描述

float myArray[5] = { 0, 0, 0, 0, 0 };
myArray = { 1, 2, 3, 4, 5 };

为什么这在 H​​LSL 中不可能做到?是某种内存问题吗?

标签: arraysmemory-managementinitializationhlslredefinition

解决方案


因为这里的花括号是聚合初始化语法的一部分。 {}单独不会创建新数组。你能做的是

float myArray[5] = { 0, 0, 0, 0, 0 };
float local[] = { 1, 2, 3, 4, 5 };

myArray = local;

推荐阅读