私は、Kernighan & Ritchieの 'Cプログラミング言語'の構造体を返す例を見つけました。構造体へのポインタを返す
/* binsearch: find word in tab[0]...tab[n-1] */
struct key *binsearch(char *word, struct key *tab, int n)
{
int cond;
struct key *low = &tab[0];
struct key *high = &tab[n];
struct key *mid;
while (low < high) {
mid = low + (high-low)/2;
if ((cond = strcmp(word, mid->word)) < 0)
high = mid;
else if (cond > 0)
low = mid + 1;
else
return mid;
}
return NULL;
}
関数が関数内のローカル変数へのポインタを返すようです。これは、ぶら下がったポインタを返すケースではないでしょうか?