Funktionen, Pointer, Parameterübergabe
-
Halli-Hallo!
Ich wollt mal fragen, ob ihr mir dabei helfen könnt. Es gibt eine ziemlich lange Funktion, die ich ein bisschen gliedern will, mit Unterfunktionen. Allerdings bin ich mir bei manchen Sachen unsicher, daher frag ich mal, ob das so klappen könnte...
Alter Code:/* Deklarationen */ TCHAR *pszMeta[MAX_META+1]; // pointer to meta names int16 nMetaIndex[MAX_META+1]; // index of meta names in original list int16 nDelChar[MAX_META+1]; // number of deleted special chars int16 i,j,k,n,t; pszCopy = pszMeta[i]; n = nMetaIndex[i]; t = nDelChar[i]; for ( k=i; k<j ; k++) { pszMeta[k] = pszMeta[k+1]; nMetaIndex[k] = nMetaIndex[k+1]; nDelChar[k] = nDelChar[k+1]; } pszMeta[j] = pszCopy; nMetaIndex[j] = n; nDelChar[j] = t;
Will ich ersetzen durch:
ADDlg_SortMeta (&pszMeta[i], *nMetaIndex, *nDelChar, i, j);
Funktion dazu lautet:
VOID ADDlg_SortMeta(TCHAR** ppszString, int16* nInt1, int16* nInt2, int16 i, int16 j) { TCHAR *pszHelp; int16 nHelp, nHelp2; int16 x,y,z; pszHelp = (*ppszString)[i]; x = nInt1[i]; y = nInt2[i]; for( z = i; z < j; z++) { (*ppszString)[z] = (*ppszString)[z+1]; nInt1[z] = nInt1[z+1]; nInt2[z] = nInt2[z+1]; } (*ppszString)[j] = pszHelp; nInt1[j] = x; nInt2[j] = y; }
Klappt das so? Muss ich irgendwas beachten?
Bin derzeit bei den theorethischen Überlegungen, da ich kein "Handwerkszeug" hier habe
Lieben Gruss
Miriam
-
ADDlg_SortMeta (&pszMeta[i], *nMetaIndex, *nDelChar, i, j);
das geht nicht, musst
ADDlg_SortMeta (&pszMeta, *nMetaIndex, *nDelChar, i, j);
verwenden. ansonsten kann ich auf die schnelle keinen fehler entdecken.
-
Was ist TCHAR??
-
Hallo,
TCHAR ist ein generischer Windows-Datentyp, der je nach Projekt-Einstellungen in einen CHAR (das wiederum ein char ist) oder einen WCHAR (welcher ein UNICODE-Zeichen repräsentiert, ein wchar_t) aufgelöst wird.
MfG
-
Vielen Dank schonmal für die Hilfe, für weitere Hinweise bin ich dankbar... Gerade im Bezug auf Pointer, die ich zwar als genial empfinde, aber nicht immer verstehe
Gibt es da irgendwelche "Eselsbrücken"?
Gruss
Miriam
-
Amila schrieb:
Vielen Dank schonmal für die Hilfe, für weitere Hinweise bin ich dankbar... Gerade im Bezug auf Pointer, die ich zwar als genial empfinde, aber nicht immer verstehe
Gibt es da irgendwelche "Eselsbrücken"?
Gruss
MiriamDas ist am Anfang ganz normal, dass man mit Pointern Probleme hat. Dagegen hilft nur: Lesen & üben, üben, üben.
Vielleicht kann dieser Link deinen Umgang mit Zeigern nochmals festigen:
http://www.exonet.de/exonet.php3?doc=ctutorial/pointers.htmlAnsonsten: Hier fragen