如何创建指针虚幻引擎4
How to create pointers Unreal Engine 4?
在blueprintable类中,我在FJsonValue
定义了指针。
private:
TSharedPtr<FJsonValue, ESPMode::ThreadSafe> JsonValue;
调用分配内存的方法后,我得到了空对象…
void UDictValue::SetInt(float value)
{
ValueType = EDictValueType::VT_INT;
JsonValue = MakeShareable(new FJsonValueNumber(value));
GEngine->AddOnScreenDebugMessage(-1, 15.0f, FColor::Red, "test");
}
MakeShareable
实际上分配了新的内存。调试器说地址在哪里被分配…但从函数返回后,指针立即下降(JsonValue = NULL
)
什么错了吗?这是GC吗?但是在调用这个方法之后我需要这个指针
您正在函数内部创建对象,并使用MakeShareable
将其分配给TSharedPtr
。一旦函数超出作用域,创建的对象就会被销毁,使TSharedPtr
为空。为了使它保持持久,您必须在函数外部创建对象,然后将TSharedPointer
指向它。
你可能应该做的是在对象级别初始化它,然后在你的函数中改变它的值,而不是试图在函数中创建它。
MakeShareable只是使从c++风格指针显式转换为TSharedPtr成为可能,它实际上并不改变TSharedPtr的行为。
相关文章:
- 1d 智能指针不适用于语法 (*)++
- 在C#中处理C++指针而不使用unsafe的最佳方法
- 为什么使用 "this" 指针调用派生成员函数?
- 函数向量_指针有不同的原型,我可以构建一个吗
- 使用指针从C++中的数组中获取最大值
- 助记符和指向成员语法的指针
- 嵌入方指针压缩已禁用
- 数组的指针从不分段故障
- C++ 指针的内存地址和指向数组的内存地址如何相同?
- 何时在引用或唯一指针上使用移动语义
- QMetaObject invokeMethod的基于函数指针的语法
- 如何从 std::atomic 中提取指针 T<T>?
- 如何在 C# 中映射双 C 结构指针?
- 从作弊引擎到C++的指针
- 如何在没有作弊引擎的情况下从其他应用程序获取指针地址?
- 虚幻引擎 4.18.0,VS2017,不允许指向不完整类类型的错误指针
- 与指针和地址混淆[作弊引擎]
- 通过函数指针在游戏引擎数学库中使用SIMD ~一个好主意
- 如何创建指针虚幻引擎4
- C++、作弊引擎/OllyDBG从多级指针中查找基础"static"地址