【发布时间】:2020-05-15 22:43:35
【问题描述】:
当我尝试调试时 出现错误: “最终 project.exe 中 0x5784F2F6 (ucrtbased.dll) 处的未处理异常:无效参数已传递给认为无效参数致命的函数。” 尝试了所有方法无法弄清楚如何解决这个问题。
using namespace std;
class Map :
{
private:
double *mhours_played;
string *maps;
unsigned element_num;
public:
Map()
{
maps[2] = { "Summoner's rift", "Aram" };
element_num = 2; mhours_played[2] = {};
}
~Map() { delete[] maps; }
};
【问题讨论】:
-
maps[2] = { "Summoner's rift", "Aram" };icompile 是一个有趣的巧合。它不会做你认为它会做的事情。您不能一次分配给整个数组,= {a,b,c}语法仅在 初始化 它时才有效(并且maps甚至不是数组)。您可能需要maps = new string[2] = {"foo", "bar"};,同样需要mhours_played。除非你是为了练习,否则你应该使用std::vector而不是手动调用new和delete。 -
这在构造函数之外工作吗?
标签: c++ class definition construct ctor-initializer