håller på med en uppgift från en bok som jag läser för att träna på c++ Du vill väl returnera ett värde, inte en pekare? Själv skulle jag skriva något likt följande... (du behöver inte hämta adressen/dereferera variablerna så ofta) japp jo tack :) såg ju vad jag hade gjort fel nu funkar den :)nån som e duktig på pekare?
så här ser funktionen ut
int *vekmax(int v[], int n)
{
int *maxtal = &v[0];
for (int i = 1; i < n; i++)
{
if (v[i] > *maxtal)
maxtal = &v[i];
}
return maxtal;
}
men den fungerar ju inte oavsett hur många tal som vektorn skapar så när man anropar funktionen så blir utskriften vad jag för modar en adress om jag inte missminner mig 003730f8 eller ?
så nu är frågan varför funkar inte funktionen?Sv: nån som e duktig på pekare?
int vekmax(int v[], int n)
{
int *maxtal = &v[0];
for (int i = 1; i < n; i++)
{
if (v[i] > *maxtal)
maxtal = &v[i];
}
return *maxtal;
}
eller
int vekmax(int v[], int n)
{
int maxtal = v[0];
for (int i = 1; i < n; i++)
{
if (v[i] > maxtal)
maxtal = v[i];
}
return maxtal;
}
Sv: nån som e duktig på pekare?
int vexmax(int *v, int n)
{
int maxtal=v[0];
for (int i=1;i<n;i++)
if (v[i]>maxtal) maxtal=v[i];
return maxtal;
}
Sv:nån som e duktig på pekare?
så nu retunerar den talet och inte addressen