Avatar billede mxs Nybegynder
17. juli 2007 - 19:30 Der er 1 kommentar og
1 løsning

Hvorfor skal jeg skrive & her?

Hey eksperter

Jeg må sige at jeg enten har slappet for meget af, eller bare har en af mine dårlige dage. Nu når jeg tænker over det, så har jeg aldrig forstået det. Her er min kode,

  sockaddr_in s;
  s.sin_family = AF_INET;
  s.sin_port = port;
  inet_aton(netadress.c_str(), &s.sin_addr);
  memset(s.sin_zero, '\0', sizeof s.sin_zero);

  return s;

Det jeg er lidt forundret over er det & ved s.sin_addr, hvorfor skal jeg have den med? Er det fordi specifikationen til inet_aton siger,

  int inet_aton(const char *cp, struct in_addr *inp);

Og man derved giver adressen af s.sin_addr til *inp? Hvilket jeg altid har gået udfra forøvrigt, dog har jeg stadig været lidt i vildrede, da jeg ikke  kan se at man giver funktionen en pointer, mere end en adresse. Nu vil jeg bare have svar. Jeg kan vel ikke gennemskue konceptet med at man giver den en adresse men den står til at skal have en pointer.
Avatar billede mxs Nybegynder
17. juli 2007 - 19:35 #1
Dette eksempel forklarer vel det hele?

#include <iostream>
using namespace std;



int* f(int* p)
{
  return p;
}




int main()
{

  int i = 4;
  int *p = &i;
  cout << "int pointer: " << *f(p)<<endl;
  cout << "int: " << *f(&i)<<endl;
}
Avatar billede mxs Nybegynder
17. juli 2007 - 20:34 #2
Jeg kan nu se at jeg har været for sløv i optrækket :) Undskyld for at jeg skal poste et indlæg for at det skal gå op for mig selv.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester