Tablica wskaźników do tablic znaków

0

Cześć,
głowię się nad tym już pare dni i co chwila kompilator zwraca mi błąd. Chcę zrobić tablicę wskaźników na tablice w których będę chował słowa. Nie rozumiem dlaczego kompilator nie czepia się dla & przed wskaźnikiem.

int* segregujPojedyncza(char tab[], int dl, char *posegregJedna){
                // tablica wskaźników na ilosc wyrazów
                 int *ilosci=malloc(dl*sizeof(int));
                 int j=0;
                 int i=0;
                 int dlwyrazu=0;
              for(i=0;i<zliczaj(tab);i++){
                        if(tab[i]!=' '){
                                    dlwyrazu=0;
                                     while(tab[i]!=' ' && tab[i]!='\0'){
                                                     i++;
                                                     dlwyrazu++;
                                                     }
                                         ***(&posegregJedna+j)=malloc((dlwyrazu)*sizeof(char));      **    
                                       *(ilosci+j)=(dlwyrazu);
                                       int k=i-dlwyrazu;
                                       
                                       for(k;k<dlwyrazu;k++){
                                                     
                                                      *(*(&posegregJedna + j) + k)=tab[k];       
                                                      
                                                      }
                                                      j++;
                                       }
                                       }        
                        return ilosci;
                        
} 
0
  1. Wygrałeś plebiscyt "najgorzej sformatowany kod"
  2. Nie rozumiem po co robisz takie potworki z tymi & i *. Nie da się po prostu użyć operatora [] ?
0

Ok, porawiłem już ten kod. Ale wychodzi dziwny błąd. Jak mu się wpisze do 5 slów w zdaniu to fajnie podzieli zdanie na słowa i zapisze je w tablicach char. Jak się da więcej niż 5 to wychodzi śmieszny śmieć zamiastt 1 słowa.

char** segregujPojedyncza(char tab[], int dl){
                // tablica wskaźników na ilosc wyrazów
               char **(posegregJedna)=(char*)malloc(dl*sizeof(char));
              // printf("dl%d",dl);
          
                 int j=0;
                 int i=0;
                 int dlwyrazu=0;
                 
              for(i=0;i<zliczaj(tab);i++){
                        if(tab[i]!=' '){
                                    dlwyrazu=0;
                                     while(tab[i]!=' ' && tab[i]!='\0'){
                                                     i++;
                                                     dlwyrazu++;
                                                     }
                                                    // printf("dl%d",dl);
                                                     char *pomocnicza=malloc((dlwyrazu)*sizeof(char)); 
                                         *(posegregJedna+j)=pomocnicza;
                                                  
                                      
                                       int k=i-dlwyrazu;
                                      //printf("%d",k);
                                       int l=0;
                                       for(k;k<i;k++){
                                                     
                                                      *(*(posegregJedna + j) + l)=tab[k];
                                                      //printf ("%d,%d\n",j,l);       
                                                    // printf("%c\n",*(*(posegregJedna + j) + l));
                                                   // printf("%c\n",tab[k]);
                                                   l++;
                                                      }
                                            j++;           
                                       }
                                      
                                       } 
                                       
                                        
                        return posegregJedna; 

1 użytkowników online, w tym zalogowanych: 0, gości: 1