मुझे समझ में क्यों यह एक segfault कारण बनता है:std :: कॉपी और std :: वेक्टर समस्या
#include <algorithm>
#include <vector>
using namespace std;
int main()
{
vector<int> v;
int iArr[5] = {1, 2, 3, 4, 5};
int *p = iArr;
copy(p, p+5, v.begin());
return 0;
}
लेकिन क्यों यह एक segfault का कारण नहीं है?
#include <algorithm>
#include <vector>
using namespace std;
int main()
{
vector<int> v;
int iArr[5] = {1, 2, 3, 4, 5};
int *p = iArr;
v.reserve(1);
copy(p, p+5, v.begin());
return 0;
}
@ केनीटीएम 1 तत्व –
के लिए दूसरी आरक्षित जगह सी ++ में अपरिभाषित व्यवहार के विभिन्न प्रकार से संबंधित एक अच्छा जवाब था: http://stackoverflow.com/questions/367633/what-are-all-the-common- अपरिभाषित-व्यवहार-वह-एसी-प्रोग्रामर-चाहिए-पता-अबो/367662 # 367662 –
आप 'कॉपी (पी, पी +5, बैक_इन्सेटर (v)) का उपयोग क्यों नहीं करते हैं, और इस गड़बड़ी से बचें? –