C++ - Programm Offenbar Druck-Speicher-Adresse anstelle von Array

#include <iostream>
using namespace std;

int main(){
    int findMax(int *);

    const int MAX = 100;
    int values[MAX];
    char ivals[256];
    //Get the space-separated values from user input.
    cin.getline(ivals, 256, '0');
    char *helper;
    //Clean input array and transfer it to values.
    for(int i = 0; i < (MAX) && ivals[i] != 0; i++){
        helper = ivals[i * 2];
            values[i] = atoi(helper);

    }

    int mval = findMax(values);
    cout << values << endl << mval;
    return 0;
}
//Function to find the maximum value in the array
int findMax(int arr[]){
    int localmax = 0;
    for(int i = 0; i < (sizeof(arr)/sizeof(int)); i++){
        if(arr[i] > localmax){
            localmax = arr[i];
        }
    }
    return localmax;
}

Der Zweck dieses Programms ist für den Benutzer bei der Eingabe eine durch Leerzeichen getrennte Reihe von Werten, die damit endete eine 0. Das array wird dann analysiert, um zu finden, die max. Ich herausgefunden, wie zu konvertieren, was ist ursprünglich ein char[] in ein int [], so dass ich verwenden können, die findMax () - Funktion auf, ohne Fehler, aber die Sortier-loop scheint ein eigenes problem und wenn "cout << Werte << endl << mval;" aufgerufen wird, gibt es nur eine Speicher-Adresse, anstatt was sein sollte, eine nicht-proportionale Folge von int-Werten. Kann jemand erklären, was ich falsch mache? Es scheint, dass ich möglicherweise einen Fehler gemacht mit dem Zeiger, aber ich kann nicht herausfinden, was.

InformationsquelleAutor DaveStance | 2010-09-09
Schreibe einen Kommentar