1樓:
之前搞acm這種問題遇到很多,資料動不動就是過億的,我們一般都統一全域性分配,在函式裡分配都會出問題,現在已經忘了堆和棧的區別了
2樓:
malloc(N) 是申請了N個Byte的空間,不是N個int的空間,所以應該是malloc(sizeof(int) * N)
3樓:天象
最簡單的方法其實不是new或malloc,是把這個陣列寫進全域性變數裡。
inta
[1000000000
];int
main
()全域性變數都是在堆裡的。我應試都這麼寫。
4樓:
先吐槽 10^9 == 3
---int*a
=new
int[3];
int*a=
(int*)
malloc(3
*sizeof
(int
));都可以
5樓:劉洪澎
malloc分配的是N位元組的記憶體,但是乙個int占用4位元組。陣列實際大小最多N/4,當然會越界了。
不過這個越界發生的位置為什麼是2500600就不知道了。
6樓:毛草
這種問題必須要用乙個使用鍊錶實現的sparse matrix吧。
如果你的需求比較簡單的話不妨自己寫乙個,也不難;如果需要實現複雜運算的話,可以看看這個問題——答案裡有若干個不錯的庫,你可以試一試。
linear algebra
我錯了,想太多是病,得治
還有,C++不應該用malloc!!這是邪道!!!!
7樓:Bingo
簡單點就執行時new
搞高階一點可以試試一口氣要來4g記憶體按對齊去分配就完事了就乙個簡單的記憶體池
不過題主這個編譯錯誤好像不是10^9的問題吧
8樓:
如果你在用windows,靜態全域性這種就不要想了,exe本身結構決定了不可能。
你可以編成64位程式,執行時去new乙個。
怎麼樣寫乙個C 程式,刪除一維陣列中的重複資料,使陣列中的資料各不相同?
張強 排序,氣泡排序會寫吧?稍微改一改就可以寫乙個去重程式了 語言描述一下,程式你自己寫了 先設定skip 0 當i位置時,從i skip 1 n中選最大 小的,如果i 0並且這個資料和i 1的資料相等,就是重複了,skip 下一輪i不增加,直接從i skip 1 n中選最大 小的,迴圈 如果沒有重...
java中乙個空陣列與乙個長度為0的陣列有什麼區別呀?
剷草除根 主要在客戶端呼叫的稍微有點區別。public int getNum 這樣寫呼叫的時候不用做非空判斷。public int getNum 這樣寫還需要做非空判斷。 我是派大星 空陣列如果是指數組變數引用為空的話,也就是意味著它就是個單純的陣列變數存在於棧空間,但是如果是長度為0的陣列就不一樣...
如何使用C 編寫乙個模板,可以同時適用於陣列和vector int 型別且避免資料的複製?
rayhunter 這個問題有意思,大佬們說的對。本身就應該寫兩個函式,但是非要從技術角度看。我想到的是傳位址解決拷貝問題,然後用引數自動推導,求得陣列大小 N模板特化來分支 仿函式,過載 操作,勉強滿足樓主要求。template T class SortFunctor template intN ...