statisch Heap erzeugen/löschen bei WinCC start/ende

Beiträge
195
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Leute,

ich hab eine Header datei, in der ich ein Pointer auf einen Heap statisch deklaiert habe:

Code:
static char* pGlobalHeap=NULL;

in einem trigger funktion allokiere ich den speicher

Code:
if( pGlobalHeap==NULL) {  pGlobalHeap= SysMalloc(....); }

und inder WinCC funktion "OnDeactiaveExecute" will ich den heap wieder löschen:

Code:
if( pGlobalHeap!=NULL) { SysFree(pGlobalHeap); }

der Heap wird erzeugt, und ich habe aiuch eine gütlige Speicehr adresse. Aber wenn ich WinCC beenden, und er in die "OnDeativateExecute" kommt, ist plötzlich die "pGobalHeap" Variable auf NULL??? wieso?
 
Könnte mir vorstellen, das der Speicher automatisch von WinCC freigegeben wird, bevor es beendet wird, ähnlich wie in den meißten Fällen bei Delphi. Stürzt dann etwas ab oder was stört dich genau?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
es stört mich das ich nicht weis wa mit dem speicher passert.. aber es klappt ehr nich, wenn ich den speicher anlege, und die statische variable bzw. den pointer in c-scripte verwende, ist der pointer immer NULL.. wieso? obwohl speicehr reserviert wurde
 
Zurück
Oben