我这个for循环里带了一个给对象数组赋值的一个函数,但是第一个成功赋值了,就是那个players【0】是有的,但是赋值成功后就不动了,应该就是卡死在这个addplayer函数这里,为什么会出现问题呢
name是在堆栈上分配的,之后就销毁了。
该回答引用GPTᴼᴾᴱᴺᴬᴵ
首先,我看到你的for循环里面定义的变量是 i,但是在循环体内部你使用的是 1,这应该是一个笔误,应该将 i 修改为 1。
·
其次,我看到你在循环体内部使用了 std::cin.getline() 函数来读取用户输入的数据,但是你没有对用户输入的数据进行错误检查和异常处理,这可能会导致程序崩溃或者陷入死循环。建议你对用户输入的数据进行适当的检查和处理。
·
最后,我看到你在 addPlayer() 函数里面直接将新的玩家对象指针添加到了数组末尾,并将数组长度 numPlayers 加 1,这种写法有一定的风险,容易出现数组越界的问题。建议你在添加新元素之前,先检查数组是否已满,如果已满则动态扩展数组大小。另外,如果你使用的是 C++11 及以上版本,建议使用标准库提供的容器类代替裸指针数组,这样可以减少手动内存管理的复杂度。