[c] adres tablicy błąd

0

Witam wszystkich może mi ktoś pomóc bo nie wiem w czym tkwi błąd

#include <stdio.h>
void getline(char tab[]);
void zam(char tab[], char *tabpo[]);

main()
{
  char tab[10], tabpo1[10];
  while(1)
  {
    printf("podaj znaki \n");
    getline(tab);
    printf("%s",tab);
    zam(tab,&tabpo1[]); //<- przy kompilacji tutaj jest błąd
    printf("%s \n",tabpo1);
  }

}
void getline(char tab[])
{
 int i=0;
 while((tab[i]=getchar())!='\n')
  {
   ++i;
  }
 tab[i]='\ 0';
}
char zam(char tab[], char *tabpo)
{
 int i=0, c=0;
 char tabpo[10];
 while(tab[i]!='\ 0')
  {
   ++i;
  }
   --i;
 for(i;i>=0;--i)
 {
   *tabpo[c]=tab[i];
   ++c;
 }

}

pozdrawiam

0

I nie dziwne, że masz błąd, bo w deklaracji próbujesz wstawić wskaźnik do wskaźnika do tablicy. tab i tabpol są traktowane jak wskaźniki do obszatu danych (tablicy), takie cos dziwnego w c, do czego jednak mozna sie przyzwyczaić.

#include <stdio.h>

// nie stosuj forwardow, jesli nie musisz, 
// bo przy duzych programach sie pogubisz.

void getline(char* tab){
  int i=0;
  while((tab[i++]=getchar())!='\n'); // '\n'==13, ale mniejsza z tym
  tab[i]=0;  // lub tab[--i]=0; jesli nie chcesz entera na koncu
  // jeszcze zadbaj, by ciag nie byl dluzszy niż 9 znaków.
}

void zam(char* tab,char* tabpo){
  int i=-1,c=0;
  while(tab[++i]);                // = strlen() ze string.h
  while(i--)tabpo[c++]=tab[i];
}

int main(){         
  char tab[10], tabpo1[10]; 
  while(1){
    printf("podaj znaki \n");
    getline(tab);
    printf("%s",tab);
    zam(tab,tabpo1);          // tu juz nie ma błędu;
    printf("%s \n",tabpo1);
  }
  return 0; // function should return value
}

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