Zapisywanie wskaźników do tablicy wskaźników

0

Proszę o wytłumaczenie mi w jaki sposób w zapisywać adresy wskaźników w tablicy wskaźników?
Mam stringa i szukam w nim znaku, adresy ich wystąpień muszę zapisać w tablicy wskaźników.
Napisałem taki oto prototyp;
char *funkc(char *string, char znak, char *tabadresow[]);
Wszystkie moje próby pisania tej funkcji kończą się wywaleniem programu.
Z góry dziękuje!

0

Wrzuć tutaj jakąś swoją próbę, to będzie można coś więcej powiedzieć. Mam zgadywać jakie błędy popełniasz? ;)

0

wypadałoby mimo wszystko przedstawić jakąś próbę, nawet wywalającą…

no ale niech ci będzie:

#include <stdio.h>
#include <string.h>
 
/* mała zmiana: funkcja zwraca ilość znaków znalezionych, oraz pobiera dodatkowo rozmiar tablicy tabadresow */
int funkc(char *string, char znak, char* tabadresow[], int rozmiar_tablicy)
{
    int i;
    for (i=0; i<rozmiar_tablicy && *string!='\0'; string++)
        if (*string == znak)
            tabadresow[i++] = string;
    return i;
}
 
 
char napis[256];
char* adresy[256];
 
int main()
{
    int ile;
    int i;
    strncpy(napis,"ala ma kota",256);
    printf("%s\n",napis);
    ile = funkc(napis,'a',adresy,256);
    printf("znaleziono znaków: %d\n",ile);
    for (i=0;i<ile;i++)
        *adresy[i] = 'e';
    printf("%s\n",napis);
    return 0;
}
0
#include <stdio.h>
#include <stdlib.h>
char *strchrall(char *str, char c, char *tabOfPtr2c[]);
int main(int argc, char *argv[])
{
  char stry[]="ala ma kota";
  char *adresy[10];
  char znak='a';
  strchrall(stry,znak,adresy);
  system("PAUSE");	
  return 0;
}
char *strchrall(char *str, char c, char *tabOfPtr2c[])
{
     int zlicz=0;
     while(*str!='\0') 
     { 
                   if(*str==c) 
                   {
                   *tabOfPtr2c=&str;
                   tabOfPtr2c++;       
                   zlicz++;    
                   }
     str++; //nastepny element
     }
     if(zlicz==0) 
     return NULL; 
     else
     return tabOfPtr2c;
     
 }

Coś takiego, program już się kompiluje, jednak funkcja ma zapisywać adresy wystąpień znaku w tablicy i funkcja zwraca wskaźnik do pierwszego znalezionego
znaku.

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