0
我有一个程序需要使用大型数组(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文件读取)。在我打算如何使用它
byte* array1 = (byte*) malloc(700000 * sizeof(byte));
array1 = { ~~ 700k comma-separated values ~~ };
样品:
这不(根据到Visual Studio太多的初始值)工作
#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;
}
为什么不试图保持你的第一个代码'byte array1 [10000] = ...'但添加'static'不将你的数组存储在栈中? –
向我们提供该计划的完整背景,这是我们帮助您的一部分。另外,C中使用'malloc';总是在C++中使用'new []'。 – qxz
@qxz正在处理它。 – pandalion98