2013-06-08 4 views
-5

Le code montre une conversion non valide à partir int * int Comment résoudre le problème ... le détail complet de l'erreur est donnée ci-dessousConversion invalide quoi faire?

Erreur:

WAP to find the maximum in a dynamic array 
In function 'int* search(int*, int)':: 
12 invalid conversion from 'int*' to 'int' [-fpermissive] 

code:

#include<iostream> 
#include<conio.h> 
using namespace std; 

int *search (int arr[], int size); 

int main() 
{ 
    int ar[5]; 
    int *loc; 
    cout << "Enter the values in array: \n "; 
    for(int i=0;i<5;i++) 
     cin>> ar[i]; 

    loc = search(ar,5); 


    for(int i=0;i<10000000000;i++); 
    return 0; 
} 


int *search (int arr[], int size) 
{ 
    int *ptr; 
    *ptr = arr; 
    for(int i=1;i<size;i++) 
    { 
     if(arr[i] > *ptr) 
      ptr = &arr[i]; 
    } 
    return ptr; 
} 
+1

Comment votre code a-t-il compilé avec 'conio.h'? –

+1

@AlokSave Je pense qu'il existe encore en VS (au moins dans les anciennes versions). – kirelagin

+0

L'erreur est dans la ligne '* ptr = arr;'. – ntd

Répondre

1

Ce n'est pas

int *ptr; 
*ptr = arr; 

Il devrait être

int *ptr; 
ptr = arr; 
+0

Cette fonction a cependant beaucoup plus de problèmes. – ntd

+0

@ntd Où? Si 'size> 0', la fonction fonctionne bien. – johnchen902

0

en C++ ou C,

int arr[5]; 

le type d'arr est int *.

+1

Non, le type de 'arr' est' int [5] '. Lorsque vous le passez à une fonction (et dans de nombreuses autres situations), 'arr' est converti en un int, mais les tableaux sont très différents des pointeurs. –

Questions connexes