// function t find the max value entered in the array
double max(double *n,int size)
{
int i,k=0;
double *maxi;
maxi=&k;
for(i=0;i<size;i++)
{
if(*maxi<n[i])
{
maxi=&n[i];
}
}
return *maxi;
}
//elements of array are added
main()
{
double a[10000],maxi;
int size,i;
printf("enter the size of the array");
scanf("%d",&size);
printf("enter the elements of array");
for(i=0;i<size;i++)
{
scanf("%lf",&a[i]);
}
maxi=max(&a,size);
printf("maximum value is %lf",maxi);
}
Warum wird der Zeiger in der Funktion max nicht de-referenziert? Wenn ich den Zeiger n
de-referenziere gibt es einen Fehler. Wenn es eine bessere Möglichkeit gibt, dies zu tun, schlagen Sie bitte vor.Warum wird der Zeiger in der Funktion max nicht de-referenziert?
_It gibt eine error_ nicht eine sehr hilfreiche Beschreibung ist, geben Sie bitte Ihre Frage auszuarbeiten und eine [MCVE] bieten. –
Es gibt eine kleine Diskrepanz in Ihrem Aufruf 'max (& a, size)', die wahrscheinlich eine Compiler-Warnung gibt. Es sollte entweder 'max (a, size)' oder 'max (& a [0], size) 'sein. Beide übergeben einen Zeiger auf das erste Element des Arrays (das ist der korrekte Zeigertyp "double *"), anstatt einen Zeiger auf das ganze Array zu übergeben (was der falsche Zeigertyp ist double (*) [10000] '). –