Bu kod neden çalışma zamanı hatası veriyor?Bu kod neden harita dizeleriyle (C++) çalışma zamanı hatası veriyor?
#include <cstdio>
#include <map>
#include <string>
#include <iostream>
using namespace std;
map <int, string> A;
map <int, string>::iterator it;
int main(){
A[5]="yes";
A[7]="no";
it=A.lower_bound(5);
cout<<(*it).second<<endl; // No problem
printf("%s\n",(*it).second); // Run-time error
return 0;
}
Eğer cout kullanırsanız, iyi çalışır; Ancak, printf kullanırsanız, çalışma zamanı hatası verir. Nasıl düzeltebilirim? Teşekkürler!
g ++ 4.6.3 derleme zamanı "hata: önemsiz olarak kopyalanamaz tipte nesneler iletemez" struct std :: basic_string '' ... '' aracılığıyla şikayet eder. Bahse girerim, derleyicinin de en azından ilgili bir uyarısı vardır. –
aschepler