c++ - The sizeof several casts -


why function sizeof not return same size when getting used on struct itself?

i need cast because of winsock program im working on. help, true.

#include <iostream> #include <string> using namespace std; struct stringstruct {     string s1;     string s2; }; int main() {     stringstruct ss = {"123","abc"};     char *nx = (char*)&ss;     cout << sizeof(nx) << endl << sizeof(*nx) << endl;     cout << sizeof(&ss) << endl << sizeof(ss) << endl;     getchar();     return 0; } 

the example above outputs

4 1 4 64 

sizeof tell size of given expression's type. in both sizeof(nx) , sizeof(&ss), result 4 because pointers on machine take 4 bytes. sizeof(*nx), dereferencing char*, gives char, , char takes 1 byte (and does), output 1. when sizeof(ss), ss stringstruct, size of stringstruct, appears 64 bytes.


Comments

Popular posts from this blog

blackberry 10 - how to add multiple markers on the google map just by url? -

php - guestbook returning database data to flash -

delphi - Dynamic file type icon -