#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <limits.h> //architektur
#include <stdlib.h>
#define true 0
int fehlercode (char **fehlermeldung);
int main(){
char **fehlermeldung;
fehlercode(fehlermeldung);
printf("%s",*fehlermeldung);
}
int fehlercode (char **fehlermeldung) {
unsigned int max,i=0;
int a,b;
double zahl,maxx;
char eingabe[300];
printf("\nBitte geben sie irgendeine Zeichenkette ein\n");
fflush(stdin);
fgets(eingabe,300, stdin);
if(eingabe == NULL) return 1;
if((eingabe[0] == '+')) return 1; //Verhindert akzeptanz von +
if((eingabe[0] == '-'))i++; //Erlaubt - (eigentlich Unsinn)
while(eingabe[i] != '\n')
if(!isdigit(eingabe[i++])){ //Ueberprueft nach und nach den Array ob er aus Zahlen besteht
*fehlermeldung="Buchstabe";
return 1;}
//Rueckgabe von "false" wenn Buchstabe oder + im string
max=(UINT_MAX); //Einlesen der maximalen Groesse von unsigned integer
zahl= atof(eingabe); //Umwandlung des Strings in einen Double Wert
maxx=(double)max;
if (zahl>max){
printf("zahl zu gro�");
*fehlermeldung="Die Zahl ist leider zu gro�";
return 1; //Wenn Zahl groesser unsigned int dann return 1
}
if (zahl<0){
*fehlermeldung="Zahl kleiner 0";
return 1; //Wenn Zahl kleiner 0 return 1
}
*fehlermeldung="Alles i.O.";
}
Unter Unix läuft das ganze perfekt, wenn ich das ganze unter Linux/Windows ausführen möchte bekomme ich einen Segmentation Error. Kann mir wer sagen woran das liegt.
Compiler wirft keine Fehlermeldung raus!
Dieser Beitrag wurde von bbrickwedde bearbeitet: 08. November 2006 - 22:21

Hilfe
Neues Thema
Antworten

Nach oben



