gpt4 book ai didi

c++ - 在 C++ 中返回一个 wchar_t

转载 作者:行者123 更新时间:2023-11-30 01:48:39 25 4
gpt4 key购买 nike

我正在创建一个返回指向 wchar_t 的指针的函数,但每次我使用它时它什么都不返回。

功能:

wchar_t *Character::getCharHealth() {
wchar_t charHealth[256];
swprintf_s(charHealth, L"%d", this->getHealth());
wprintf(L"%s\n", charHealth);
wchar_t* cHealth = charHealth;
return cHealth;
}

getHealth() 函数:

int Character::getHealth() {
return this->health;
}

用在什么地方:

spriteFont->DrawString(spriteBatch.get(), warrior->getCharHealth(), DirectX::SimpleMath::Vector2(40, 0));

我的代码有什么问题吗?

最佳答案

cHealth 是指向 charHealth 的指针,它是 getCharHealth 函数的本地指针。一旦函数返回,charHealth 使用的内存被释放,所以 cHealth 是一个野指针。一种可能的解决方案是在堆上使用 newcharHealth 分配空间。

关于c++ - 在 C++ 中返回一个 wchar_t,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30181224/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com