fopen() Speicherzugriffsfehler
Verfasst: Fr Aug 22, 2014 1:12 pm
Hallo Leute,
folgendes Problem.
Ich möchte prüfen, ob die Datei beispiel.histfile schon besteht oder nicht, falls sie nicht besteht die Variable histfile=0 setzten, wenn sie besteht, möchte ich deren Inhalt im char-Array ccc2 speichern.
Jedoch hängt sich das Programm in der while-Schleife auf und es kommt: Speicherzugriffsfehler(Speicherabzug geschrieben).
Ich habe mir mal die while-Schleife Schritt für Schritt ausgeben lassen, Endlosschleife mit beliebigen Werten die für p über 100000 gehen, aber wieso?!?
In der Datei stehen maximal 1000 Zeichen. Es passiert sogar, wenn Sie leer ist. Problem besteht übrigens nur unter Linux, unter Windows klappt es einwandfrei.
Edit by cloidnerux: Quote-Tags zu Code-Tags
folgendes Problem.
Ich möchte prüfen, ob die Datei beispiel.histfile schon besteht oder nicht, falls sie nicht besteht die Variable histfile=0 setzten, wenn sie besteht, möchte ich deren Inhalt im char-Array ccc2 speichern.
Jedoch hängt sich das Programm in der while-Schleife auf und es kommt: Speicherzugriffsfehler(Speicherabzug geschrieben).
Ich habe mir mal die while-Schleife Schritt für Schritt ausgeben lassen, Endlosschleife mit beliebigen Werten die für p über 100000 gehen, aber wieso?!?
In der Datei stehen maximal 1000 Zeichen. Es passiert sogar, wenn Sie leer ist. Problem besteht übrigens nur unter Linux, unter Windows klappt es einwandfrei.
Code: Alles auswählen
#include <time.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <dirent.h>
#include <ctype.h>
FILE *datei;
int p=0;
int histfile;
int b2;
char ccc2[100000];
if(fopen("beispiel.histfile", "r+") == NULL){
histzahl=0;
}else{
datei = fopen("beispiel.histfile", "a+");
while ((b2 = fgetc(datei)) != EOF){
ccc2[p]=b2;
p++;
}
/* jetzt sollte in ccc2[] der Inhalt der Datei zeichenweise gespeichert sein, unter Windows ist es das auch, unter Linus nicht */
fclose(datei);