我正在尝试调整动态分配的字符串数组的大小;这是代码!
void resize_array() {
size_t newSize = hash_array_length + 100;
string* newArr = new string[newSize];
fill_n(hash_array,newSize,"0"); //fills arrays with zeros
memcpy( newArr, hash_array, hash_array_length * sizeof(string) );
hash_array_length = newSize;
delete [] hash_array;
hash_array = newArr;
}
不幸的是,它不起作用并给出了分段错误。知道为什么吗?这基本上是一个线性探测哈希表,其中元素被插入到任何有 0 的地方,因此我使用 fill_n 用 0 填充新创建的数组。请问有什么帮助吗?