동적으로 할당 된 문자열 배열의 크기를 조정하려고합니다. 여기에 코드가 있습니다!동적 문자열 배열 크기 조정
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