c - fail to read a file with fscanf -


i ve written following code, without compilation errors nor warnings. program crashes every time? why , how fix issue?

the code

#include <stdio.h> #include <string.h> #include <stdlib.h>  int main () {   file *fp;    int vertexindex=0;   float vertextable[][2000]={0};   int faceindex = 0;   int facetable[][2000]={0};   char lineheader[128]={0};    fp = fopen("c://users//matt//desktop//mannekecoord.txt","r");    if(fp == null)    {      perror("error in opening file");      return(-1);   }      {     int res = fscanf(fp, "%s", lineheader);     if(res ==eof)       {break;}      //vertex     if ( strcmp( lineheader, "v" ) == 0 ){       fscanf(fp, "%f %f %f\n", &vertextable[vertexindex][0], &vertextable[vertexindex][1], &vertextable[vertexindex][2]);       vertexindex++;     }      //face      if ( strcmp( lineheader, "f" ) == 0 ){       fscanf(fp, "%d//%d %d//%d %d//%d %d//%d\n", &facetable[faceindex][0], &facetable[faceindex][1], &facetable[faceindex][2], &facetable[faceindex][3], &facetable[faceindex][4],  &facetable[faceindex][5], &facetable[faceindex][6],  &facetable[faceindex][7] );       faceindex++;     }    } while(1);    fclose(fp);   return 0; } 

this short version of content of file has read:

  v -0.999718 -1.004708 0.999546    v -0.932863 -2.122097 -1.108066    v -1.000000 1.000000 1.000000    v -0.980325 0.671164 -1.031669    v 0.094571 -2.805363 -1.376969    v -0.437903 -2.617016 -1.306834    f 728//48 782//48 785//48 751//48    f 758//48 788//48 789//48 759//48    f 727//48 783//48 782//48 728//48    f 793//402 797//402 796//402 792//402    f 790//48 794//48 797//48 793//48    f 791//403 795//403 794//403 790//403    f 783//404 791//404 790//404 782//404    f 784//405 792//405 796//405 788//405    f 789//48 797//48 794//48 786//48    f 786//406 794//406 795//406 787//406 

i compile using website: http://www.onlinecompiler.net/

both vertextable , facetable of size 1 2000, you're writing unallocated memory, leads "undefined behavior"


Comments