0

I'm trying to learn some basic C++ and the moment I started to think I got a grasp of all those pointers I stumbled across this problem:

int sizeOf(string texts[]) {
    return sizeof(texts);
}

int main() {
    string texts[] = {"apple", "banana", "orange", "watermelon"};
    cout << sizeof(texts) << endl;
    cout << sizeOf(texts) << endl;
}

and this function returns

128
8

My question is: what is happening when I pass this array as an argument? Why suddenly C++ forgets that this is an array? I have tried to dereference it inside a method (return sizeof(*texts)) but it returned 32 instead which is the size of one string element, not a whole array. Is it possible to do what I want to do? Where am I mistaken?

Karol Pokomeda
  • 133
  • 2
  • 13

0 Answers0