したがって、以下に示すように、ポインターの配列をソートしようとしています。私が抱えている問題は、配列に null 要素が 1 つ含まれていることです。もちろん、NULL以外のすべての要素を逆参照する必要があります。そうしないと、もちろんエラーが発生しますが、これにより、NULLが表示された後に要素を適切に並べ替えることができなくなります。NULL の場合に特定の例外を作成できますが、これを回避し、他のすべてを逆参照している間に NULL を 0 で処理する方法はありますか? 今、私はソートにNULLを無視するように伝えています。問題の解決策を見つけることができなかったため、これは単なるプレースホルダーです。
#include <stdio.h>
#include <stdlib.h>
void arr(int ar[], int ele);
int main(){
int a=0, b=9, x=3, p=2, *ar[]={&a, &b, &x, NULL, &p}, i=0, ele=(sizeof(ar)/sizeof(ar[0]));
arr(ar, ele);
printf("\n\n");
for(;i<ele;i++){
if(ar[i]==NULL){
printf("");
}else{
printf("%i", *ar[i]);
}
}
}
void arr(int *ar[], int ele){
int i=ele-1, c=0;
for(;i>0; i--){
for(;c<i; c++){
if((ar[c]!=NULL && ar[c+1]!=NULL) && *ar[c]>*ar[c+1]){
int t=*ar[c+1];
*ar[c+1]=*ar[c];
*ar[c]=t;
}
}
}
}