Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    142

    invalid conversion from `int*' to `int' (xchè?)

    Codice PHP:
    #include <iostream>
    #include <cstdlib>
    using namespace std;
    bool sorted (int,int);

    int main()
    {
        
    int size=5;
        
    int vettore[5]={1,5,7,9,10};
        
    sorted(size,vettore);
        
    system ("pause");    
    }

    bool sorted (int n,int A[])
    {
      if (
    n==1)
        return 
    true;
      else
       if (
    A[n]<A[n-1])
        return 
    false;

    xchè mi da questo errore quando lo compilo? cosa sbaglio?

    invalid conversion from `int*' to `int'
    initializing argument 2 of `bool sorted(int, int)'

  2. #2
    Alla quarta riga... quando dichiari la funzione, metti:

    bool sorted(int, *int);

    bye...
    To understand recursion, we must first understand recursion

  3. #3
    il prototipo:
    Codice PHP:
    bool sorted (int,int); 
    differisce dalla definizione:
    Codice PHP:
    bool sorted (int n,int A[]) 
    e la cosa non è gradita dal compilatore.
    ;-)

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    142
    ah ecco cosa mi sfuggiva.. solo che ora aggiustando mi da come errore alla 4 riga

    4 expected identifier before '*' token
    4 expected `,' or `...' before "int"
    4 ISO C++ forbids declaration of `parameter' with no type

    come mai?

  5. #5
    Originariamente inviato da atomico
    ah ecco cosa mi sfuggiva.. solo che ora aggiustando mi da come errore alla 4 riga

    4 expected identifier before '*' token
    4 expected `,' or `...' before "int"
    4 ISO C++ forbids declaration of `parameter' with no type

    come mai?
    Non sapendo quello che hai scritto, posso solo provare ad indovinare, che hai scritto quello che ti ha proposto Infernal, ma è sbagliato. Hai provato a rendere il prototipo identico (basta un copia incolla...) alla definizione?

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    142
    Originariamente inviato da MacApp
    Non sapendo quello che hai scritto, posso solo provare ad indovinare, che hai scritto quello che ti ha proposto Infernal, ma è sbagliato. Hai provato a rendere il prototipo identico (basta un copia incolla...) alla definizione?
    ah posso fare il copia/incolla della definizione? pensavo si dovesse scrivere solo il tipo

    grazie mille

  7. #7
    Originariamente inviato da atomico
    ah posso fare il copia/incolla della definizione? pensavo si dovesse scrivere solo il tipo

    grazie mille
    ?

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    1,326
    Originariamente inviato da mondobimbi
    Originariamente inviato da atomico
    ah posso fare il copia/incolla della definizione? pensavo si dovesse scrivere solo il tipo

    grazie mille
    ?
    Probabilmente intendeva dire che pensava che nel prototipo andassero specificati solo i tipi dei parametri e non anche gli identificatori... quindi prima non faceva mai il copia&incolla della definizione della funzione perché in quel modo avrebbe copiato anche i nomi.

    Comunque nel prototipo di una funzione ci possono andare tranquillamente anche i nomi dei parametri, anzi in genere viene considerata buona norma specificarli (anche se non è necessario) perché migliora la leggibilità del codice.

    In ogni caso, se ad una funzione devi passare un array e magari (per qualche oscuro motivo) nel prototipo non vuoi specificare i nomi dei parametri, ti basta scrivere (nel tuo caso):

    bool sorted (int,int *);

    oppure

    bool sorted (int,int []);

    perché appunto devi specificare che il secondo parametro è un puntatore a quel tipo di dato.
    every day above ground is a good one

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.