2010-04-10 4 views
1

Je travaille sur un programme qui nécessite l'utilisation de 4 matrices de taille [1000] [1000]. Je les ai créés en utilisant malloc(), mais lorsque j'essaie d'exécuter le programme, il se bloque et l'utilisation de la mémoire peut atteindre 2,5 Go. Veuillez suggérer n'importe quelle solution dès que possible. Je serais reconnaissant ..problème d'allocation de mémoire dynamique

+3

Pouvez-vous montrer le code que vous utilisez pour créer ces matrices? Quel est le type de l'élément dans chaque matrice? Avez-vous essayé de créer des matrices plus petites et de voir à quel point l'utilisation de la mémoire va? –

+2

Nous avons besoin de beaucoup plus d'informations pour suggérer des solutions. Code postal – meagar

+2

D'accord. CODECODECODE! = D –

Répondre

0

Pourquoi n'exécutez-vous pas le programme dans un débogueur, tel que gdb, pour voir exactement où il se bloque? Cela vous aidera à affiner le problème.

+0

Je ne suis pas d'accord avec le fait que ce vote a été rejeté ... compte tenu de l'information présente, je pense que c'est la meilleure réponse que l'on puisse donner. = P –

+1

Être la «meilleure réponse que l'on puisse donner» ne constitue pas nécessairement une réponse particulièrement bonne. Personnellement, je ne l'abaisserais pas, mais je ne serais pas enclin à l'écarter non plus. –

1

4 matrices dimensionnées [1000] [1000]

Pourquoi utiliser malloc() quand vous savez au moment de la compilation la quantité de mémoire dont vous avez besoin? Allouer de façon dynamique des tableaux à deux dimensions n'est pas la chose la plus triviale à faire, pas plus que de les libérer (voir la FAQ C, Question 2.14 sur une façon de le faire). Ne compliquez pas trop vos programmes.