c++ std::sort intel compiler error : access violation
c++ std::sort intel compiler error : access violation
为什么这个简单的 C++ 代码片段无法编译?
#include <algorithm>
#define SIZE (1000)
struct S {
int *vect;
};
int main() {
struct S* s = static_cast<struct S*>(malloc(sizeof(struct S)));
s->vect = static_cast<int*>(malloc(sizeof(int) * SIZE));
for(int i = 0; i < SIZE; i++) {
s->vect[i] = i;
}
std::sort(s->vect, s->vect + SIZE);
}
编译器returns出现以下与std::sort调用相关的错误
1>C:\Program Files (x86)\Microsoft Visual
Studio17\Enterprise\VC\Tools\MSVC.12.25827\include\algorithm(3138):
error : access violation
1> return (pair<_RanIt, _RanIt>(_Pfirst, _Plast));
1> ^
我正在使用 visual studio Enterprise 2017 版本 15.5.2 和英特尔编译器 64 位版本 17.0.4.210 Build 20170411。
代码已使用默认 visual studio 编译器成功编译。
找不到我做错了什么。
我发现不幸的是 visual studio 更新 15.5.x 破坏了 Intel Compiler 2017,正如我在 intel forum 中提出的相同问题所见。希望对其他人也有用。
为什么这个简单的 C++ 代码片段无法编译?
#include <algorithm>
#define SIZE (1000)
struct S {
int *vect;
};
int main() {
struct S* s = static_cast<struct S*>(malloc(sizeof(struct S)));
s->vect = static_cast<int*>(malloc(sizeof(int) * SIZE));
for(int i = 0; i < SIZE; i++) {
s->vect[i] = i;
}
std::sort(s->vect, s->vect + SIZE);
}
编译器returns出现以下与std::sort调用相关的错误
1>C:\Program Files (x86)\Microsoft Visual
Studio17\Enterprise\VC\Tools\MSVC.12.25827\include\algorithm(3138):
error : access violation
1> return (pair<_RanIt, _RanIt>(_Pfirst, _Plast));
1> ^
我正在使用 visual studio Enterprise 2017 版本 15.5.2 和英特尔编译器 64 位版本 17.0.4.210 Build 20170411。
代码已使用默认 visual studio 编译器成功编译。
找不到我做错了什么。
我发现不幸的是 visual studio 更新 15.5.x 破坏了 Intel Compiler 2017,正如我在 intel forum 中提出的相同问题所见。希望对其他人也有用。