2013-06-08 5 views
-5

код показывает недопустимое преобразование INT в * межд Как исправить эту проблему ... полная деталь ошибки приводится нижеНеверное преобразование Что делать?

Ошибка:

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

Код:

#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

Как ваш код скомпилирован с 'conio.h'? –

+1

@AlokSave Я думаю, что он все еще существует в VS (по крайней мере, в старых версиях). – kirelagin

+0

Ошибка находится в строке '* ptr = arr;'. – ntd

ответ

1

Это не

int *ptr; 
*ptr = arr; 

Это должно быть

int *ptr; 
ptr = arr; 
+0

У этой функции есть гораздо больше проблем. – ntd

+0

@ntd Где? Если 'size> 0', функция работает хорошо. – johnchen902

0

в C++ или C,

int arr[5]; 

тип обр является INT *.

+1

Нет, тип 'arr' -' int [5] '. Когда вы передаете его функции (и во многих других ситуациях), 'arr' преобразуется в' int * ', но массивы сильно отличаются от указателей. –

Смежные вопросы