Wisenky
guys why I cant get true values in this codes #include "stdio.h"
#include "stdlib.h"
#include "string.h"
typedef struct {
int size;
int id;
int tip;
float x1;
float x2;
float y1;
float y2;
}blocks;
int main() {
blocks *block1 , *block2 , *block3;
char line[60];
int blcNum=1;
int sizer=0;
int temp;
block1 = malloc( sizeof(blocks) );
block2 = malloc( sizeof(blocks) );
block3 = malloc( sizeof(blocks) );
FILE *fp;
fp = fopen("IEEE_test_system_12.txt","r");
// block's size calculator and memory allocater ;
while(fgets(line,60,fp))
{
if ( strstr(line,"\0") != NULL && strstr(line,"ID") == NULL && strstr(line,"END") == NULL ) {
sizer++;
}
else if ( strstr(line,"END") != NULL ){
if ( blcNum == 1){
block1->size = sizer;
blcNum++;
sizer = 0;
}
else if ( blcNum == 2){
block2->size = sizer;
blcNum++;
sizer = 0;
}
else if ( blcNum == 3){
block3->size = sizer;
blcNum++;
sizer = 0;
}
}
};
block1 = realloc(block1 , block1->size * sizeof(blocks));
block2 = realloc(block2 , block2->size * sizeof(blocks));
block3 = realloc(block3 , block3->size * sizeof(blocks));
fclose(fp);
line == NULL;
blcNum=1;
puts("\n\n");
fp = fopen("IEEE_test_system_12.txt","r");
char *szTempString;
int index=1;
int counter=1;
while(fgets(line,60,fp))
{
szTempString = line;
if( strstr(line,"ID") == NULL && strstr(line,"END") == NULL )
{
printf("%s",line);
if(index <= block1->size)
{
printf("%s",line);
sscanf(szTempString,"%d %f %f",&(block1 + (index*sizeof(blocks)))->id,&(block1 + (index*sizeof(blocks)))->x1,&(block1 + (index*sizeof(blocks)))->y1);
index++;
}
}
}
fclose(fp);
printf("\nUploader's information : \n");
for (temp =1; temp <= block1->size ; ++temp)
{
printf(" id : %d , X1 : %f , Y1 : %f \n",(block1+(temp*sizeof(block1)))->id,(block1+(temp*sizeof(block1)))->x1,(block1+(temp*sizeof(block1)))->y1);
}
/*
printf("\nCustomer's information : \n");
for (temp =1; temp <= block2->size ; ++temp)
{
printf(" id : %d , tip : %d , X1 : %f , Y1 : %f , X2 : %f , Y2 : %f \n",(block2+(temp*sizeof(block2)))->id,(block2+(temp*sizeof(block2)))->tip,(block2+(temp*sizeof(block2)))->x1,
(block2+(temp*sizeof(block2)))->y1,(block2+(temp*sizeof(block2)))->x2,(block2+(temp*sizeof(block2)))->y2);
} */
/*
printf("\nLine's information : \n");
for (temp =1; temp <= block3->size ; ++temp)
{
printf(" id : %d , X1 : %f , Y1 : %f , X2 : %f , Y2 : %f \n",(block2+(temp*sizeof(block3)))->id,(block2+(temp*sizeof(block3)))->x1,
(block2+(temp*sizeof(block3)))->y1,(block2+(temp*sizeof(block3)))->x2,
(block2+(temp*sizeof(block3)))->y2);
}
*/
printf("\n1 . block's size : %d ",block1->size);
printf("\n2 . block's size : %d ",block2->size);
printf("\n3 . block's size : %d ",block3->size);
free(block1);
free(block2);
free(block3);
return 0;
} but I can access values truely in this , also I cant able to understand the difference without scanning vlariables from text