3.37 DM_IndexReturn
Diese Funktion dient zur sicheren Funktionsrückgabe von lokalen Index-Werten (DM_Index) an den Aufrufer. Bei Verwendung von lokalen Variablen und Strukturen in einer C-Funktion sind diese nach der Rückgabe ungültig. Mit dieser Funktion kann problemlos und sicher ein lokaler Index zurückzugeben werden.
Zu diesem Zweck wird eine temporäre Kopie angelegt.
DM_Index * DML_default DM_EXPORT DM_IndexReturn
(
DM_Index *pindex,
DM_Options options
)
Parameter
-> DM_Index * pindex
Dieser Parameter verweist auf den Index welcher zurückgegeben wird.
-> DM_Options options
Hier sind keine Optionen erforderlich, ist mit 0 zu belegen.
Rückgabewert
Zurückgegeben wird ein für die Funktionsrückgabe gültiger Zeiger auf eine DM_Index-Struktur oder NULL im Fehlerfall. Ein Fehler kann z.B. vorliegen, wenn die Funktion im falschen runstate
aufgerufen wird oder das Kopieren nicht ausgeführt werden konnte.
Beispiel
dialog YourDialog function index SwapIndex(index Idx); on dialog start { print SwapIndex([1,3]); exit(); }
...
DM_Index* DML_default DM_ENTRY StringOf(DM_Index* Idx)
{
DM_Index newIdx;
newIdx.first = Idx->second;
newIdx.second = Idx->first;
/* wrong: return &newIdx; => newIdx is local! */
return DM_IndexReturn(&newIdx, 0);
}
Verfügbarkeit
Siehe auch