CodeC++地図EXC_BAD_ACCESS(アップルのみ)
それが正常に動作します。しかし、XCode 4で実行すると、誰かがマップを読み込んだときに2回目の繰り返しでEXC_BAD_ACCESSを取得します(タイトルから「Load Map」を選択します)。
あなたはあなたのget_key_val
機能は次のように起動しXCode project
#include <string>
#include <map>
#include <iostream>
std::map <std::string, std::string> info;
std::string* get_key_val(std::string* line)
{
std::string key_val[2];
int start, end;
start = line->find_first_not_of(" ");
end = line->find_last_of(":");
if(start == -1)
{
return NULL;
}
else if(end == -1)
{
return NULL;
}
else
{
key_val[0] = line->substr(start, end - start);
}
start = line->find_first_not_of(" ", end + 1);
end = line->find_last_of(" \n\r");
if(start == -1)
{
return NULL;
}
else if(end == -1)
{
return NULL;
}
else
{
key_val[1] = line->substr(start, end - start);
}
return key_val;
}
void parse_from_line(std::string* line)
{
std::string* keyv = get_key_val(line);
if(keyv[0].empty() == false && keyv[1].empty() == false) info[ keyv[0] ] = keyv[1];
}
int main(int argc, char* args[])
{
std::string line = "name: Foo";
parse_from_line(&line);
std::cout << "Hello " << info["name"].c_str();
}
この問題のより簡単な例がありますか?あなたは人々に多くの読書や研究を依頼しています。 (あなたはまた、プロセスの問題を解決する可能性があります) –
マット:はい、私は行とそれにリンクし、コードをコピーしてください、すみませます。 ドリュードーマンとサム・ミラー:私は試していましたが、それを再現することはできませんでした。私は、メインですべてをやりながら別の機能を追加していたからだと思いますが、今問題を知っているので再作成するのは簡単でしたが、今後の視聴者のために上記の編集を追加します。 –