Finally I have figured out the way,
The problem:
Actually the info I didn't share(didn't realize it can be important) was I was checking in debug mode. Then I realize that if the csv file is small the program quit but if the csv file is big,10 mb, the program does not quit.
And I also notice that memory usage was increasing rapidly. Then I wrote a small debug code to store all allocation in a linked list including file name, variable name and the line number.
18862040, 220, e:\ryo desktop\ryo desktop\csv\csv_parser.cpp, buff
18730496, 220, e:\ryo desktop\ryo desktop\csv\csv_parser.cpp, buff
18729816, 220, e:\ryo desktop\ryo desktop\csv\csv_parser.cpp, buff
18808512, 220, e:\ryo desktop\ryo desktop\csv\csv_parser.cpp, buff
18802840, 220, e:\ryo desktop\ryo desktop\csv\csv_parser.cpp, buff
18729880, 220, e:\ryo desktop\ryo desktop\csv\csv_parser.cpp, buff
18802904, 220, e:\ryo desktop\ryo desktop\csv\csv_parser.cpp, buff
18735864, 220, e:\ryo desktop\ryo desktop\csv\csv_parser.cpp, buff
through this, I figured out that one of my dynamic variable is not freeing at all, I figured out the cause and fixed it. now, Its working fine :) Thank you everybody for your support