Why the memory Limitation to a data structure in cpp: size of "XXX::C_SubNetwork::S_ListBuffer [3]" >= 256 Mb and can I raise the limit higher?
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
How can I use more than 256Mb of memory for a data structure in cpp (visual studio)? Can I set the memory Limit to 1 GB of memory ?
The ERROR:
File C:\xxxxx\Source\TRUNK\aaaaa\Subnet.h line 550
Error: Limitation: size of "XXX::C_SubNetwork::S_ListBuffer [3]" >= 256 Mb
S_ListBuffer ms_DataBuffer[mu8BufferSize];
S_ListBuffer is a structure that is member variable.
0 commentaires
Réponses (1)
James Tursa
le 21 Juil 2020
Modifié(e) : James Tursa
le 21 Juil 2020
This looks like you are declaring this variable as a local variable, in which case the memory for it will come off of the stack. The stack has a much smaller memory limit than the heap. You should allocate this variable from the heap with the new[] operator. (I.e., declare it as a pointer and assign it the result of a new[] operator). Be sure to delete[] it when you are done with it.
S_ListBuffer *ms_DataBuffer = new S_ListBuffer[mu8BufferSize];
:
delete[] ms_DataBuffer;
3 commentaires
James Tursa
le 21 Juil 2020
Modifié(e) : James Tursa
le 21 Juil 2020
I don't use Polyspace, so I have no idea how to increase the stack size and have "Polyspace follow." But, really, variables this size should be coming from the heap IMO.
Walter Roberson
le 22 Juil 2020
On some processors, stack-relative offsets are limited in the number of bits, because the offset is built in as part of the instruction.
Voir également
Catégories
En savoir plus sur Run Settings dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!