void string_sort(const char** string_pt)
{
int cnt=0;
char *temp=0;
while(*string_pt[cnt] != '') <-문제의 부분
{
  printf("%sn", *(string_pt+cnt));
  cnt++;
}
}



문자열 포인터의 배열 속에 문자열들을 입력받은 것들을 정렬해주는 함수입니다.

근대 시작부터 난관을 보입니다.



조건은 문자열 포인터의 베열을 넘겨받아서 포인터를 정렬하는식으로 문자를 정렬해야되는대, 배열과 배열 겟수를 넘기는 방법은 알고 있습니다. 하지만 저는 그게 싫어서 배열만 넘겨보고 싶었습니다.



하지만, 일반적인 문자들이 배열 하나만을 차지하고, 마지막에 NULL값을 집어넣는대 비해서 문자열 포인터의 배열은 그 NULL값이라는것이 없습니다. 그래서 저렇게 돌리면 출력되다가 마지막 문자까지 출력된후 정지하는게 아니고 그 다음 문자도 출력 할려다가 에러를 일으킵니다.



그렇다고 종료 조건에서 '' 이런식으로 넣어봤자 에러를 뿜어내고, sizeof를 이용해서 전채 크기를 구할려고 해도 넘겨받은 포인터는 4바이트인듯 하군요;;;(베열의 시작주소만 넘긴듯 하다는 의미)



2개의 매개변수를 받지 않고 C++이 아닌 순수한 C에서 1개의 매개변수만 받아서 사용할수 있는 방법은 없는지 궁금합니다.

질문 내용 추가 (2006-07-11 22:28 추가)
다음은 이 함수를 쓰기 위한 메인의 부분입니다.

int main(void)
{
char *whatday[7]={"Sunday","Monday","Tuesday","Wednesday",
"Thursday","Friday","Saturday"};

string_sort(whatday);

return 0;
}

제가 지식인에 올렸었고 답글이 2개 달렸습니다만...뭔가 다른 방법이 없을까 싶어서 한번 여기다도 올려봅니다.
나온 방법은
1.배열에 NULL값을 넣어서 강제로 종료 조건문을 만든다.

2.malloc함수를 이용해서 포인터 베열에서 가리켜진 문자를 동적 할당 시킨다.
입니다만...좀더 깔끔한 함수내에서 가능한 방법은 없는건가요?