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 中提出的相同问题所见。希望对其他人也有用。