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