gpt4 book ai didi

c++ - 动态数组在构造函数中崩溃

转载 作者:太空宇宙 更新时间:2023-11-04 15:32:10 25 4
gpt4 key购买 nike

我正在尝试实现一个用于教育目的的动态字符串数组。我遇到的问题是每当我尝试在我的构造函数中向空数组添加字符串时程序崩溃。

Array::Array(string dir, string dim)
{
size = 0;
ptr = new string[size + 1];
ptr[size] = dir;
size++;
ptr[size] = dim;
size++;
}

我的头文件中声明了 int size 和 string *ptr。本来以为这是越界问题,看了this post ,我将初始分配固定为大小 + 1,但持续存在的问题似乎证明并非如此。

最佳答案

改变size的值不会改变数组的大小。

您分配了一个大小为 1 的数组。然后你将一些东西分配给该数组的第一个(唯一)元素。然后,您为该数组的第二个元素赋值 - 但该数组只有一个元素。

另请注意,使用 new 不会分配动态数组。一旦分配,大小就不能改变。

关于c++ - 动态数组在构造函数中崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48257452/

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