I am trying to copy 65,536 lines from a file to an int array of the same size using a function.
each line contains four hexadecimal digits.
I also added _CRT_SECURE_NO_WARNINGS in properies => c/c++ => preprocessor definitions because i kept getting warnings because i was using f_gets and not f_gets_s to read from the file.
the error I keep getting now is:
Run-Time Check Failure #2 - Stack around the variable 'temp' was corrupted.
when trying to print the array I see that all the lines are copied but the last line is copied twice or maybe copied once but is printed twice.
 
I don't understand what I'm doing wrong.
Thanks for the help.
#include <stdio.h>
#define NUMBER_OF_LINES_MEMO 65536
#define NUMBER_OF_REGISTERS 16
#define CHARS_IN_LINE 5  
#define CHARS_IN_IMMEDIATE 5 
#define _CRT_SECURE_NO_WARNINGS
void createFromFile(FILE *fPtrReadMemin, int *meminLines){
  //create a new array of int numbers named meminLines, with the lines of memin text file
  //gets pointers for the file memin and for the array meminLines
    FILE *copyCreateFromFile = fPtrReadMemin;
    int i = 0;
    char temp[CHARS_IN_LINE]; //used for copying to the memory array
    int temp2;
    while (!feof(copyCreateFromFile))
    {
      fgets(temp, NUMBER_OF_LINES_MEMO, copyCreateFromFile);
      if (strcmp(temp, "")==0)
      {
            break;
      }
      temp2 = (int)strtol(temp, NULL, 16);
      meminLines[i] = temp2;
      printf("%04x\n", temp2);
      i++;
   }
}
int main(int argc, char* argv[]) 
{
    FILE*fPtrReadMemin;
    fPtrReadMemin = fopen(argv[1], "r"); //open Memin to read
    int meminLines[NUMBER_OF_LINES_MEMO]; // the memory  
    if (fPtrReadMemin == NULL) { //check if the files were open correctly
        printf("There was error using files\n");
        exit(1);
    }
    createFromFile(fPtrReadMemin, meminLines); //create the memory
    system("pause");
    fclose(fPtrReadMemin);//close all files
    return 0;
 }
 
    