以前我有用於矩陣數據集設計從靜態數組遷移到動態數組
TMatrix = record
row, column: word; {m columns ,n strings }
Data: array[1..160, 1..160] of real
var
Mymatrix : TMatrix;
begin
Mymatrix.row := 160; - maximum size for row us is 160 for 2 x 2 static design.
Mymatrix.columns := 160; - maximum size for column us is 160 for 2 x 2 static design.
隨着當前設計靜態數組我只可具有160×160在2維矩陣的設計。如果我輸入更多陣列大小[1..161,1..161],編譯器將提醒爲E2100數據類型過大:超過2GB錯誤。所以如果我將代碼轉換爲動態數組,我需要重新構造我當前的所有代碼以讀取從0開始的矩陣。對於靜態數組,陣列將從1開始。一些外部函數開始從1讀取矩陣。
所以,現在我堅持使用當前代碼,我需要創建超過一千個N x N矩陣大小。用我目前的靜態數組設計,如果低於160 x 160,一切都會好起來。所以,我需要獲得任何解決方案而不需要太多來改變我當前的靜態數組設計。
謝謝。
這裏有更大的問題!如果161x161大於2GB,切換到動態數組將無濟於事,因爲Win32進程的最大分配大小爲2GB。除非你去64位,否則你會很困難! – LaKraven
'161 * 161 * SizeOf(Real)'當然不大於2GB –
帶有161x161的TMatrix的大小爲207376字節。 –