string 사전 정렬하는 함수 만들려 하는데 복잡하네요...

la.miel94의 이미지

void sort_strings(char *list[], int size)
{
char *temp;
int cmp,help;

help = size;
temp=(char *)malloc(sizeof(char)*size);
for (;help>0;help--){
temp[help]=*list[size];
for (;size>0;size--){
cmp=strcmp(temp,list[size-1]);
if (cmp>0) temp=list[size-1];
}
size=help-1;
}
}
메인문은 입력받을 문자열의 숫자를 받고 --> size
*list[]로 문자열을 받았습니다.
문법은 틀린게 없는데 알고리즘이 틀린거 같아 올립니다....Help me!

la.miel94의 이미지

include <stdio.h>

include <string.h>

include <stdlib.h>

define MAX 1024

void sort_strings(char *list[], int size);

int main(void) { int rows,i=0; char **list_back; char *list;

    scanf("%d",&rows);
    list_back = (char**)malloc(sizeof(char*)*rows);
    for(;rows>=0;rows--){
            fgets(list,MAX,stdin);
            list_back[i]=list;
            i++;
    }
    sort_strings(list_back,i);
    for(;i>=0;i--){
            printf("%d\n",list[rows]);
            rows++;
    }

    return 0;

}

void sort_strings(char *list[], int size) { char *temp; int cmp,help;

    help = size;
    temp=(char *)malloc(sizeof(char)*size);
    for (;help>0;help--){
            temp[help]=*list[size];
            for (;size>0;size--){
                    cmp=strcmp(temp,list[size-1]);
                    if (cmp>0) temp=list[size-1];
            }
            size=help-1; 
    }

} ~