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
Post a Comment