Ktoś mi wytłumaczy czemu ta referencja ma inne miejsce w pamięci niż tablica ;)?
#include <iostream>
#include <cstring>
#include <cstdlib>
#include <ctime>
using namespace std;
char* maxn(char** tab,int);
int main()
{
char *tablica[5] = {"Zdanie pierwsze", "Hej", "ABECADLO", "Yo no tengo quiera najdluzsze", "bye"};
char* &&a = maxn(tablica,5);
cout << "Najdluzsze slowo: " << &a << " na adresie: " << " Tablica: " << &tablica[3];
//tablica o adresie &tablica[3] w pamieci ma adres 0x28ff00
//referencja &&a do tej wartosci w tablicy w pamięci ma adres 0x28ff08
//8 bitów różnicy.... ktoś mi wytłumaczy dlaczego ;)?
//działać działa, sam sobie utrudniam... ale próbuję w 100% zrozumieć referencjei kombinuje ile wlezie :P
//EDIT: Problem jest większy :P Mianowicie pod &a zawsze jest ten sam adres (0x28ff08)
//niezależnie od wyniku funkcji maxn();
//już kompletnie nie czaję :P
return 0;
}
char* maxn(char** tab,int a){
int g=0;
for(int i=0;i<a;i++) g = strlen(tab[i]) > strlen(tab[g]) ? i : g;
return tab[g];
}