그래서 아래에서 볼 수 있듯이 포인터 배열을 정렬하려고합니다. 문제는 배열에 하나의 null 요소가 있다는 것입니다. NULL을 제외한 모든 요소를 역 참조해야합니다. 물론 오류가 발생합니다. 그러나 이로 인해 내 정렬에서 NULL이 나타난 후에 요소를 올바르게 정렬하지 못하게됩니다. NULL 예외에 대한 특정 예외를 만들 수 있지만,이 문제를 피하기 위해 어쨌든 존재합니까? 지금은 NULL을 무시하는 정렬 말해. 내 문제에 대한 해결책을 찾을 수 없었기 때문에 이것은 단지 장소 소유자 일뿐입니다. 당신이버블 정렬 포인터 배열
Int *ptNull = new int;
*ptNull = -100(the smallest);
하자에 대해 다음 먼저 배열이 NULL을 찾아 ptNull 수를 설정하는 방법
#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;
}
}
}
}
null을 제거하고 정렬 한 다음 원하는 위치에 다시 놓습니다. 달리 간단한 알고리즘을 null로 작동 시키려고 시도하는 것보다 훨씬 간단합니다. – goat