我有一个需要使用大型数组(700,000个元素)的程序。我尝试按照普通数组分配它:
byte array1[700000] = {0xE8, 0x39, 0xF4, 0xB7, 0x69, ~~699995 other values~~ };
然而,我遇到了分段错误。经过一番研究后,有人建议我把它放在堆上。所以,我做了:
byte* array1 = (byte*) malloc(700000 * sizeof(byte) /* Just to be safe */);
我之前使用过指针,通常我会使用循环来搞乱它。但是,在这种情况下,所有值都已存在。如何将所有这些内容放入新array1
? 我无法使用外部文件(即我无法从.txt文件中读取)。
这不起作用(根据Visual Studio,初始化程序值太多):
byte* array1 = (byte*) malloc(700000 * sizeof(byte));
array1 = { ~~ 700k comma-separated values ~~ };
关于我打算如何使用它的示例:
#include <stdio.h>
int main(int argc, char* argv[]) {
byte big_array[700000] = {0xE8, 0x39, 0xF4, ~~699995 other values~~ };
some_function(big_array);
return 0;
}
答案 0 :(得分:3)
如果您能够使用C ++ 11编译器,则应使用std::vector
。
std::vector<byte> array1 = {0xE8, 0x39, 0xF4, 0xB7, 0x69, ~~9995 other values~~ };