C Programming
 
Forums: » Register « |  User CP |  Games |  Calendar |  Members |  FAQs |  Sitemap |  Support | 
User Name:
Password:
Remember me
Go Back   Dev Shed ForumsProgramming LanguagesC Programming

Reply
Add This Thread To:
  Del.icio.us   Digg   Google   Spurl   Blink   Furl   Simpy   Y! MyWeb 
Thread Tools Search this Thread Rate Thread Display Modes
 
Unread Dev Shed Forums Sponsor:
  #1  
Old November 19th, 2003, 07:41 AM
sunil_josh1 sunil_josh1 is offline
Contributing User
Dev Shed Newbie (0 - 499 posts)
 
Join Date: Nov 2003
Posts: 38 sunil_josh1 User rank is Just a Lowly Private (1 - 20 Reputation Level) 
Time spent in forums: 4 h 56 m 42 sec
Reputation Power: 7
Exclamation memory allocation

hi,
how to allocate memory for big matrix like 20000x20000 in c. In my programme i have to deal with matrix system, and programme is working upto 999x999 matrix but when i am increasing the size of matrix, programme is not working.
thanks

Reply With Quote
  #2  
Old November 19th, 2003, 08:06 AM
clifford's Avatar
clifford clifford is offline
Contributing User
Dev Shed Expert (3500 - 3999 posts)
 
Join Date: Aug 2003
Location: UK
Posts: 3,891 clifford User rank is General 4th Grade (Above 100000 Reputation Level)clifford User rank is General 4th Grade (Above 100000 Reputation Level)clifford User rank is General 4th Grade (Above 100000 Reputation Level)clifford User rank is General 4th Grade (Above 100000 Reputation Level)clifford User rank is General 4th Grade (Above 100000 Reputation Level)clifford User rank is General 4th Grade (Above 100000 Reputation Level)clifford User rank is General 4th Grade (Above 100000 Reputation Level)clifford User rank is General 4th Grade (Above 100000 Reputation Level)clifford User rank is General 4th Grade (Above 100000 Reputation Level)clifford User rank is General 4th Grade (Above 100000 Reputation Level)clifford User rank is General 4th Grade (Above 100000 Reputation Level)clifford User rank is General 4th Grade (Above 100000 Reputation Level)clifford User rank is General 4th Grade (Above 100000 Reputation Level)clifford User rank is General 4th Grade (Above 100000 Reputation Level)clifford User rank is General 4th Grade (Above 100000 Reputation Level)clifford User rank is General 4th Grade (Above 100000 Reputation Level) 
Time spent in forums: 3 Weeks 4 Days 6 h 57 m 32 sec
Reputation Power: 1216
Why are you surprised? You are attempting to increase the storage requirement by a factor of 400! And what is this a matrix of (i.e. what data type)?

If this was a matrix on int type, a 20000 x 20000 array would require 1.5Gb of memory, wheras 999x999 only requires 3.8Mb. With virtual memory, you may just about manage it, (at least on NT/2K/XP, but maybe not Win 9x).

However, it will never work if you declare such an array as an automatic variable. You will have to declare it static, or use dynamic memory allocation. Having more than one such matrix is likely to be problematic. Processing such a large amount of data when most of it at any one time is swapped to disk will be very slow.

On the whole such a data structure is ill advised, since you are relying a great deal on the stability of the OS under such strain.

If your data type is larger than an int, the problem is worse.

I suggest you consider a more efficient algorithm or storage structure.

Clifford.

Reply With Quote
  #3  
Old November 23rd, 2003, 04:08 PM
sunil_josh1 sunil_josh1 is offline
Contributing User
Dev Shed Newbie (0 - 499 posts)
 
Join Date: Nov 2003
Posts: 38 sunil_josh1 User rank is Just a Lowly Private (1 - 20 Reputation Level) 
Time spent in forums: 4 h 56 m 42 sec
Reputation Power: 7
thanks for your reply.
can you give me some idea of such algorithm. or name of some references.
regrads,
sunil

Reply With Quote
Reply

Viewing: Dev Shed ForumsProgramming LanguagesC Programming > memory allocation


Thread Tools  Search this Thread 
Search this Thread:

Advanced Search
Display Modes  Rate This Thread 
Rate This Thread:


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
View Your Warnings | New Posts | Latest News | Latest Threads | Shoutbox
Forum Jump




 Free IT White Papers!
 
How to Present Effectively Online
This white paper offers practical and actionable advice on the key steps that any presenter should consider as they plan and execute a Webinar or online meeting.

 
Open Source Security Myths
Open Source Software (OSS) is computer software whose source code is available to the general public with relaxed or non-existent intellectual property restrictions (or arrangement such as the public domain), and is usually developed with the input of many contributors.

 
Power and Cooling Capacity Management for Data Centers
This paper describes the principles for achieving power and cooling capacity management.

 
Scalable, Fault-Tolerant NAS for Oracle - The Next Generation
For several years NAS has been evolving as a storage alternative for Oracle databases, and for good reason: NAS is quite often the simplest, most cost-effective storage approach for Oracle. Learn about the benefits that HP's approach to scalable NAS brings to Oracle environments in this comprehensive white paper.

 
Understanding Web Application Security Challenges
This white paper discusses many common threats and preventive measures for Web application security, and explains what you can do to help protect your organization.

 

Forums: » Register « |  User CP |  Games |  Calendar |  Members |  FAQs |  Sitemap |  Support | 
  
 




© 2003-2010 by Developer Shed. All rights reserved. DS Cluster 5 Hosted by Hostway
For more Enterprise Application Development news, visit eWeek