#include <iostream> #include <cstring> #define MAX_SIZE 30 using namespace std; int policz (char *napisy) { if(napisy==0) return 0; else return 1+policz(napisy+1); } int najdluzszy (char *T[], int rozmiar) { } int main() { char Ala[MAX_SIZE]={"Ala"}; char ma[MAX_SIZE]={"ma"}; char kota[MAX_SIZE]={"kota"}; char i[MAX_SIZE]={"i"}; char psa[MAX_SIZE]={"psa"}; char *T[] = {Ala, ma, kota, i, psa}; najdluzszy(T, 0); return 0; }
Moim zadaniem jest napisanie programu, który za pomocą podanych zmiennych w funkcji najdluzszy z pomocą funkcji policz zwroci nam indeks najdłuższego elementu. Zadanie wydaje się być proste.. Jednak mam problem z prawidłowym przeslaniem Wskaźnika do funkcji policz. Probowałem policz(T[1]); jednak program się wyspuje.
policz(*T[1]);-spodowuje błąd kompilacji, tak samo jak policz(&T[1]);. Wiem, że do funkcji policz musze wysłać wskaźnik do Tablicy, wiec najbardziej prawdopodobna wydaje mi się opcja policz(T[1]);. Może to błąd jest w funkcji policz? Debugger wskazuje, że wartości wyskakują poza zakres... Nie mam pomysłu...