Não faço a mínima idéia do que está acontecendo, mas meu código está dando Segmentation fault apenas pq estou zerando um campo string! Não entendo o porque disso!
O Database acima tem 7 registros preenchidos! O que eu quero é apagar o campo abaixo
std::string Database[1000][7];
// Linha 2 Campo 4 estou apagando seu conteúdo e não quero mecher nos outros campos! Apenas isso!
Database[1][3] = ""; // Segmentation fault 0x00007ffff7daea29 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_assign(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
Não é assim que se apaga uma String? Em outros casos eu vou receber um valor vazio de algum controle, o Database precisa aceitar um valor vazio!
O que tá errado nesse código? HELP!
Porque o meu ACIMA não funciona? e o ABAIXO funciona? O que eu não estou conseguindo enxergar????
Acrescentando mais detalhes: Vale observar que no exemplo que dá problema, o campo do Database já está vazio!
Pois ele não recebeu nenhum valor, enquanto outros campos receberam.
Pois eu carrego o database de um arquivo! Então qdo não tem valor, meu LEITOR ignora aquele campo, pulando ele! Tipo assim:
campo 1 TEM VALOR NO ARQUIVO? Preenche!
campo 2 TEM VALOR NO ARQUIVO? NÃO? Então pulo pro próximo campo!
Ou seja, o campo nem é mechido ou modificado
Quando declaro assim, meu Database tá vazio!
std::string Database[1000][7];
Somente depois preencho com um Loop exemplo 2. OBS A necessidade do += é pq eles recebem 1 caracter de cada vez!
Database[0][0] += "A";
Database[0][1] += "B";
// Ou seja PULEI aqui o campo [0][2] não mechi nele.
Database[0][3] += "D";
E é justamente esse campo que não foi mechido que está BUGANDO qdo tento colocar nele um valor "" assim VAZIO!
Database[0][2] = "";
mas qual seria o problema de um campo VAZIO receber novamente VAZIO?
Estou muito perdido porque até isso abaixo funciona! Só no meu database que não aceita!