void *Getsortedbyindex(t_sorted *sd,int index);
Locates index-th item in the table of the sorted data sorted by address.
Parameters:
sd
(in)
Pointer to the structure of type t_sorted, descriptor of sorted
data
index
(in) 0-based index
of the item in the sorted data
Return values:
On
success, returns pointer to the element of sorted data. On error,
returns NULL.
Example:
Here
is the slightly modified code of the API function Findthreadbyordinal().
// Searches for thread with specified ordinal (1 for main, incremented by 1 for
// each new thread). Returns pointer to thread descriptor, or NULL on error.
// Uses linear search, but usually very fast because number of threads is
// limited.
stdapi (t_thread *) Findthreadbyordinal(int ordinal) {
int i;
t_thread *pthr;
for (i=0; i<thread.sorted.n; i++) {
pthr=(t_thread *)Getsortedbyindex(&(thread.sorted),i);
if (pthr==NULL) continue;
if (pthr->ordinal==ordinal) return pthr; };
return NULL; // No thread with given ordinal
};
// Searches for thread with specified ordinal (1 for main, incremented by 1 for
// each new thread). Returns pointer to thread descriptor, or NULL on error.
// Uses linear search, but usually very fast because number of threads is
// limited.
stdapi (t_thread *) Findthreadbyordinal(int ordinal) {
int i;
t_thread *pthr;
for (i=0; i<thread.sorted.n; i++) {
pthr=(t_thread *)Getsortedbyindex(&(thread.sorted),i);
if (pthr==NULL) continue;
if (pthr->ordinal==ordinal) return pthr; };
return NULL; // No thread with given ordinal
};
See also:
Sorted data, t_sorted, Createsorteddata(), Findsorteddata(), Findsorteddatarange(),
Findsortedindexrange(),
Getsortedbyselection(), Sortsorteddata()