Zdravim,
Chcel by som sa opytat co moze sposobit ze program padne pri return.
Mam program ktory ma nacitat cisla zo suboru a zapisat ich binarne do ineho suboru. Program prebehne bez problemov ale ked pride ku return tak padne s chybou 0x00..005 access violation.
Kód:
#include <stdio.h>
#include <windows.h>
#include <string.h>
bool m_fgets(FILE *f, char *s_in)
{
int i=0;
char c;
while (1)
{
if (fscanf(f, "%c", &c)>0)
{
if ((c!='\n') && (c!=10))
{
s_in[i]=c;
}
else
{
s_in[i]=0;
return true;
}
}
else
{
s_in[i]=0;
return false;
}
i++;
}
}
int main(int argc, char *argv[])
{
float num;
int inum;
char nazov[50];
char *readed;
FILE *fr=NULL, *fw=NULL;
readed = new char[20];
if (argc<2)
{
printf("nazov suboru: ");
scanf("%s", nazov);
getchar();
}
else
{
strcpy(nazov, argv[1]);
}
fr=fopen(nazov, "r");
nazov[strlen(nazov)-3]='d';
nazov[strlen(nazov)-2]='a';
nazov[strlen(nazov)-1]='t';
fw=fopen(nazov, "wb");
m_fgets(fr, readed);
inum=atoi(readed);
fwrite(&inum, sizeof(int), 1, fw);
while (m_fgets(fr, readed))
{
num=atof(readed);
fwrite(&num, sizeof(float), 1, fw);
}
fclose(fw);
fclose(fr);
delete []readed;
printf("aaegaeg\n");
getchar();
return 0;
}