Visual c++ 创建指向大规模分配一维数组的子数组的指针并发布VC++build

Visual c++ 创建指向大规模分配一维数组的子数组的指针并发布VC++build,visual-c++,compiler-optimization,dynamic-allocation,release-mode,Visual C++,Compiler Optimization,Dynamic Allocation,Release Mode,这是我的第一篇文章,我希望我没有犯任何错误。 我有以下代码。我试图一次分配和访问二维数组,更重要的是一个字节数组。我还需要能够单独访问每个子数组,如代码所示。它在调试模式下工作良好。尽管在VS 2012的版本中,当应用编译器优化时,它会在运行时引起一些问题。如果我禁用版本编译器优化,那么它就可以工作。我需要做一些特殊的转换来通知编译器吗 我在代码中的重点是整个阵列的快速分配和网络通信,同时处理其子阵列 我不喜欢使用boost 非常感谢: void PrintBytes(char* x,byte*

这是我的第一篇文章,我希望我没有犯任何错误。 我有以下代码。我试图一次分配和访问二维数组,更重要的是一个字节数组。我还需要能够单独访问每个子数组,如代码所示。它在调试模式下工作良好。尽管在VS 2012的版本中,当应用编译器优化时,它会在运行时引起一些问题。如果我禁用版本编译器优化,那么它就可以工作。我需要做一些特殊的转换来通知编译器吗

我在代码中的重点是整个阵列的快速分配和网络通信,同时处理其子阵列

我不喜欢使用boost

非常感谢:

void PrintBytes(char* x,byte* data,int length)
{
    using namespace std;
    cout<<x<<endl;
    for(  int i = 0; i < length; i++ )
    {
        std::cout << "0x" << std::setbase(16) << std::setw(2) << std::setfill('0');
        std::cout << static_cast<unsigned int>( data[ i ] ) << " ";
    }
    std::cout << std::dec;
    cout<<endl;
}

byte* set = new byte[SET_SIZE*input_size];
for (int i=0;i<SET_SIZE;i++)
{
    sprintf((char*)&set[i*input_size], "M%06d", i+1);
}
PrintByte((byte*)&set[i*input_size]);