我想調整動態分配的字符串數組的大小;這是代碼!調整動態字符串數組的大小
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。請幫忙嗎?
您能告訴我們您在這裏使用哪種語言以及在哪一行發生分段錯誤?謝謝。 – Simon
我使用的語言是C++,我無法確定發生分段錯誤的行,我使用dev-C++作爲編譯器,我想調試器出現問題。 –
使用['std :: string :: empty()'](http://en.cppreference.com/w/cpp/string/basic_string/empty)而不是填充來測試未使用的條目會不會更簡單並測試一個魔術值「0」? – Blastfurnace