Conversione di "char *" in "char". Sto passando questo array correttamente? [chiuso]

0

Quindi il mio professore di CS ha dato a tutta la classe un compito semplice. "Scrivi una funzione ricorsiva che scambierà l'ordine di una sezione in un array di caratteri." Ho pensato tra me e me: "Facile, finisco questo in circa 5 minuti e mi metterò al lavoro sui miei compiti di Trig prima di partire."

Questo non è quello che è successo. Un'ora dopo, il professore e io ci stiamo chiedendo cosa diavolo stia sbagliando.

#include<iostream>
void swap(char charList, int start, int stop);

int main()
{
    char myList[] = {'a', 'b', 'c', 'D', 'E', 'F', 'g', 'h', 'i', 'j'};
    int size = 9;
    printCharList(myList, size);
    swap(myList, 3, 5);           //<--- It doesn't seem to like this call
    return 0;
}

void swap(char charList[], int start, int stop)
{
    char temp
    if(start < stop)
    {
        temp = charList[stop];
        charList[start] = charList[stop];
        charList[stop] = temp;
        swap(charList, start+1, stop-1);
    }
    else
        std::cout << "start > stop\n";
}

Il codice è stupidamente semplice, quindi puoi immaginare la mia confusione quando si è rifiutato di compilare. Continua a lanciare un messaggio di errore che suggerisce che sto cercando di convertire un puntatore in un char, ma sono quasi sicuro di non aver fatto nulla del genere. Sono sicuro che il problema è giusto davanti alla mia faccia, ma non ho avuto fortuna nel trovarlo. Potresti aiutare un ragazzo?

    
posta anthony 27.03.2013 - 03:04
fonte

1 risposta

4

Nell'intestazione, dichiari la firma come

void swap(char charList, int start, int stop);

probabilmente lo vuoi dichiarare come

void swap(char charList[], int start, int stop);
    
risposta data 27.03.2013 - 03:13
fonte

Leggi altre domande sui tag