No dobra, uwzględniając wasze uwagi zmieniłem sposób przypisywania do tablicy wsk oraz rodzaj argumentu pobieranego przez funkcję ASCII i teraz wszystko gra, tzn. Liczby w kolumnach są takie same.(użyłem %d zamiast %p gdyż adres zapisany w systemie dziesiętnym jest mi jakoś bardziej naturalny - to był świadomy zabieg :-) ) Kod wygląda teraz tak:
#include <stdio.h>
#define GRAN 10
#define ROZMIAR 50
void ASCII(int*);
int main(void)
{
char lan[GRAN][ROZMIAR];
char * wsk[GRAN];
int licznik = 0;
while (licznik < GRAN && gets(lan[licznik]) && *lan[licznik] != '\0')
{
wsk[licznik] = lan[licznik];
licznik++;
}
printf("%d %d\n", wsk, wsk[1]);
ASCII(wsk);
}
void ASCII(int* wsk)
{
int licznik = 0;
int index;
char *temp, *wsk1;
printf("%d %d", wsk, wsk[1]);
}
No ale jak chyba wspomniałem na początku(albo nie) jest to jakby fragment większego programu, w którym po zastosowaniu tych poprawek i tak program się wiesza. Zna ktoś może odp dla czego. Przyjmę każdą krytykę. Oto kod:
#include <stdio.h>
#include <string.h>
#include <conio.h>
#define GRAN 10
#define ROZMIAR 50
void ASCII(int*);
int main(void)
{
char lan[GRAN][ROZMIAR];
char * wsk[GRAN];
int licznik = 0;
while (licznik < GRAN && gets(lan[licznik]) && *lan[licznik] != '\0')
{
wsk[licznik] = lan[licznik];
licznik++;
}
ASCII(wsk);
for (licznik = 0; *wsk[licznik] != '\0'; licznik++)
puts(wsk[licznik]);
}
return 0;
}
}
void ASCII(int *wsk)
{
int licznik = 0;
int index;
int *temp;
for (;licznik < GRAN-1; licznik++)
{
for(index = licznik + 1; index < GRAN; index++)
{
if (strcmp(wsk[licznik], wsk[index]) > 0)
{
temp = wsk[licznik];
wsk[licznik] = wsk[index];
wsk[index] = temp;
}
}
}
}