014
26.04.2008, 19:59 Uhr
Hans
Library Walker (Operator)
|
Hi, ich hab mir mal das Programm aus posting 005 vorgenommen, und folgendes entdeckt:
| C++: |
int* ReadNumbers(FILE *fin, int *n) { int x,i; int *arr;
x = fscanf(fin, "%d", &n);
if(x == 0){ printf("Beim lesen der Datei ist ein Fehler aufgetreten: \n"); }else{ arr = (int*) malloc((sizeof(int))*n; /* 3 Klammern auf und nur 2 wieder zu, Variablenverwechselung n und wahrscheinlich x } for(i=0; i<x; i++){ fscanf(fin, "%d", &n); <----------- Manipulieren von Adresse? arr[i] = (n+1)+i; } return arr; }
|
Also Du übergibst der Funktion einen Zeigen Namens n, in der malloc-zeile benutzt Du einen integer n, das ist ein Typenkonflikt, ich nehme an da soll der Wert hin, den Du vorher mit fscanf gelesen hast, das wäre dann x. Dann machst Du in der selben Zeile 3 Klammern auf, aber nur 2 wieder zu.
Soweit erst mal das, was mir da so auffiel.
Hans -- Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung. |