Hi! Its my first post on forum. I have problem - to illustrate it ill add some lines in c:
Code:
#include <stdio.h>
#include <stdlib.h>
main (int argc, char *argv[])
{
FILE *out0,*out1,*out2,*out3,*out4;
double alfa,omega,k0,c;
char filtemp [128];
sprintf(filtemp,"a%3.1lfW%3.1lfk%3.1lfBA%3.1lfsignature.dat",alfa,omega,k0,c);
if(!(out0=fopen(filtemp,"w")))
{
printf("Can't open %s file!",filtemp);
exit(0);
}
sprintf(filtemp,"a%3.1lfW%3.1lfk%3.1lfBA%3.1lfpotential.dat",alfa,omega,k0,c);
if(!(out1=fopen(filtemp,"w")))
{
printf("Can't open %s file!",filtemp);
exit(0);
}
sprintf(filtemp,"a%3.1lfW%3.1lfk%3.1lfBA%3.1lfderivative.dat",alfa,omega,k0,c);
if(!(out2=fopen(filtemp,"w")))
{
printf("Can't open %s file!",filtemp);
exit(0);
}
sprintf(filtemp,"a%3.1lfW%3.1lfk%3.1lfBA%3.1lfresults.dat",alfa,omega,k0,c);
if(!(out3=fopen(filtemp,"w")))
{
printf("Can't open %s file!",filtemp);
exit(0);
}
fprintf(out0,"test");
fprintf(out1,"test");
fprintf(out2,"test");
fprintf(out3,"test");
fclose(out0);
fclose(out1);
fclose(out2);
fclose(out3);
return 0;
}
Everything works without problem, but when I tried to short upper code, I wrote following:
Code:
#include <stdio.h>
#include <stdlib.h>
void filemaker(FILE *plik, char plik_nw[128], double alfa, double omega, double k0, double c)
{
char filtemp [128];
sprintf(filtemp,"a%3.1lfW%3.1lfk%3.1lfBA%3.1lf%s.dat",alfa,omega,k0,c,plik_nw);
if(!(plik=fopen(filtemp,"w")))
{
printf("Can't open %s file!",filtemp);
exit(0);
}
}
main (int argc, char *argv[])
{
FILE *out0,*out1,*out2,*out3,*out4;
double alfa,omega,k0,c;
char filtemp [128];
alfa=omega=k0=c=1;
filemaker(out0,"signature",alfa,omega,k0,c);
filemaker(out1,"potential",alfa,omega,k0,c);
filemaker(out2,"derivative",alfa,omega,k0,c);
filemaker(out3,"results",alfa,omega,k0,c);
fprintf(out0,"test");
fprintf(out1,"test");
fprintf(out2,"test");
fprintf(out3,"test");
fclose(out0);
fclose(out1);
fclose(out2);
fclose(out3);
return 0;
}
Unfortunately after running program error occurs. I only know that it occurs on lines 26-29 - when program tries to write lines to files... debugger showed following information: "an access violation (segmentation fault) raised in your program".
After googling I found that its all about pointers, but really I never before worked on them. Can anybody help me?