title: Process Returned -1073741819 (0xc0000005) Code::Blocks
body: <p>I'm kind of new to programming C with Code::Blocks(Version 12.11), started this semester in my college, but I manage. </p>
  
  <p>I recently learned in class about pointers, memory allocation and dynamic arrays(none are my forte), and I incorporated them in my program(and it compiles) </p>
  
  <p>Now the problem comes when I run the Program and go to Menu -> Add a Product, the program terminâtes when I input a price and I receive "Process Returned -1073741819 (0xc0000005)".
  I did some research and found out it's an access violation but I don't really understand how to correct it.</p>
  
  <p>Regards</p>
  
  <p>Here's the code:</p>
  
  <pre><code>#include &lt;stdio.h&gt;
  #include &lt;stdlib.h&gt;
  #include &lt;string.h&gt;
  
  #define maxCharName 64
  #define maxCharUserPass 8
  #define maxCharId 5
  
  // Product Structure
  typedef struct{
      char name[maxCharName];
      char idCode[maxCharId];
      float price;
      float stock;
  }product;
  
  // DataBase of Products
  typedef struct{
      int sizeT;
      product *array;
  } TProducts;
  
  TProducts a;
  
  
  // Press any Key on the Keyboard to Proceed
  void pressKeyToContinue(){
      puts("\n\n\n     Please Press any Key to Continue...");
      getchar();
  }
  
  // Start Page
  void startPage(){
      puts("\n\n\n                      -- Welcome to WeePro Manager --\n\n");
      puts("                             -- Version 1.0 --\n\n\n\n");
      puts("                    -- Developped By: Nick --");
  
      pressKeyToContinue();
      system("cls");
      }
  
  // Program Terminator
  void shutdown(){
      puts("\n\n\n      Good-Bye");
      pressKeyToContinue();               // Awaits User Input
      exit(0);
  }
  
  // Asks User Information for Verification
  int userLogin(){
      char userName[maxCharUserPass] = "WPuser";
      char inputUserName[maxCharUserPass];
  
      char passWord[maxCharUserPass] = "12345";
      char inputPassWord[maxCharUserPass];
  
      printf("Username?     ");
      scanf("%s",inputUserName); fflush(stdin);
  
      printf("Password?     ");
      scanf("%s", inputPassWord); fflush(stdin);
  
      system("cls");
  
      if((strcmp(userName, inputUserName) == 0)&amp;&amp;(strcmp(passWord, inputPassWord) == 0)){
          return 1;
      }else{ return 0;}
  }
  
  // Lists All Products With their Respective Information
  void listAll(){
      int idx = 0;
      puts("List:");
      while((idx &lt; a.sizeT)&amp;&amp;(a.array[idx].name != NULL)){
          printf(":::%s ( id: %s )", a.array[idx].name, a.array[idx].idCode);
          printf("Price: %6.2f eur/g", a.array[idx].price);
          printf("Stock: %6.2f g", a.array[idx].stock);
  
          idx++;
      }
  
      pressKeyToContinue();
      system("cls");
  }
  
  // Input Product ID Code
  char* inputIdCode(){
      char* tempIdCode;
      puts("ID Code?");
      scanf("%s", tempIdCode);
  
      system("cls");
      return tempIdCode;
  }
  
  // Search By ID Code
  int searchIdCode(){
      int idx = 0;
      char* tempIdCode;
      tempIdCode = inputIdCode();
      do{
          if(strcmp(a.array[idx].idCode, tempIdCode) == 0){
              return idx;
          }else{
              idx++;
          }
      }while(idx &lt; a.sizeT);
  
      puts("No Product With Such an ID Code!");
      return -1;
  }
  
  
  
  // Input Product Name
  char *inputProductName(int length){
      char name[maxCharName];
  
      puts("Product Name?");
      scanf("%s", name); fflush(stdin);
  
      system("cls");
      return name;
  }
  
  // Input Product Price
  float inputProductPrice(int length){
      float price;
  
      puts("Product Price?");
      scanf("%f", price); fflush(stdin);
  
      system("cls");
      return price;
  }
  
  // Input Product Stock
  float inputProductQuantity(int length){
      float quantity;
  
      puts("Product Stock?");
      scanf("%f", quantity); fflush(stdin);
  
      system("cls");
      return quantity;
  }
  
  
  /////////////////
  // Add Product //
  /////////////////
  
  // New Product Adder
  void addProduct(){
      char* tempStr;
      float temp;
  
      if(a.sizeT == 0){
          a.sizeT = 1;
          a.array = (product*)malloc((a.sizeT)*sizeof(product));
      }else{
          a.sizeT++;
          a.array = (product*)realloc(a.array, (a.sizeT)*sizeof(product));
      }
  
      tempStr = inputProductName(a.sizeT);
      strcpy(a.array[a.sizeT].name, tempStr);
      temp = inputProductPrice(a.sizeT);
      temp = inputProductQuantity(a.sizeT);
  
      system("cls");
  }
  
  void transaction(){}
  
  
  ////////////////////
  // Delete Product //
  ////////////////////
  
  // Delete Product
  void deleteProduct(){
      int idx, idxPro;
      char* tempIdCode;
  
      puts("Delete Which Product?\n");
      tempIdCode = inputIdCode();
      idxPro = searchIdCode(tempIdCode);
  
      idx = idxPro + 1;
      while(idx &lt; a.sizeT){
          a.array[idx] = a.array[idx+1];
          idx++;
      }
      a.array = realloc(a.array, (a.sizeT-1)*sizeof(product));
  }
  
  //Product Information Modifier
  void modifyProduct(){
      char choice;
      int tabLength;
      do{
          puts("Modify What?\n");
          puts("   -&gt; [N]ame\n");
          puts("   -&gt; [P]rice\n");
          puts("   -&gt; [S]tock\n\n");
          puts("   -&gt; [R]eturn to Previous Menu");                    // Prints the Menus' Options
  
          scanf("%c", &amp;choice);
          choice = toupper(choice);                               // Save Users' Choice And Up Case
          fflush(stdin);
  
          switch(choice){
              case 'N':
                      system("cls");
                      tabLength = searchIdCode();
                      inputProductName(tabLength);
                      break;
              case 'P':
                      system("cls");
                      tabLength = searchIdCode();
                      inputProductPrice(tabLength);
                      break;
              case 'S':
                      system("cls");
                      tabLength = searchIdCode();
                      inputProductQuantity(tabLength);
                      break;
              case 'R':
                      system("cls");
                      returnToMenu2();
                      break;
              default:
                  puts("Something Went Wrong!\n");
                  pressKeyToContinue();
                  system("cls");
          }
  
      }while(choice != 'o');
  }
  
  // Sub-Menu Interface
  void menu(){
      char choice;
      do{
          puts("Please Make Your Selection.\n");
          puts("   -&gt; [A]dd a New Product\n");
          puts("   -&gt; [M]odify a Product\n");
          puts("   -&gt; [D]elete a Product\n\n");
          puts("   -&gt; [R]eturn to Main Menu");                    // Prints the Menus' Options
  
          scanf("%c", &amp;choice); fflush(stdin);
          choice = toupper(choice);                               // Save Users' Choice And Up Case
  
          switch(choice){
              case 'A':
                      system("cls");
                      addProduct();
                      break;
              case 'M':
                      system("cls");
                      modifyProduct();
                      break;
              case 'D':
                      system("cls");
                      deleteProduct();
                      break;
              case 'R':
                      system("cls");
                      returnToMenu1();
                      break;
              default:
                      puts("Something Went Wrong!\n");
                      pressKeyToContinue();
                      system("cls");
          }
      }while(choice != 'o');
  }
  
  // Return To Ma
  
  &gt; Blockquote
  
  in Menu
  void returnToMenu2(){
      menu();
  }
  
  // Main Menu
  void controlPanel(){
      char choice;
      do{
          puts("Please Make Your Selection.\n");
          puts("   -&gt; [T]ransaction\n");
          puts("   -&gt; [M]enu\n");
          puts("   -&gt; [L]ist\n");
          puts("   -&gt; [S]hutdown");                                        // Prints the Panels' Options
  
          scanf("%c", &amp;choice); fflush(stdin);
          choice = toupper(choice);                                   // Save Users' Choice And Up Case
  
          switch(choice){
              case 'T':
                      system("cls");
                      transaction();
                      break;
              case 'M':
                      system("cls");
                      menu();
                      break;
              case 'L':
                      system("cls");
                      listAll();
                      break;
              case 'S':
                      system("cls");
                      shutdown();
                      break;
              default:
                      puts("Something Went Wrong!\n");
                      pressKeyToContinue();
                      system("cls");
          }
      }while(choice != 'o');
  }
  
  // Return To Main Menu
  void returnToMenu1(){
      controlPanel();
  }
  
  
  int main(){
      int loginSuccess=1;
  
      //loginSuccess = userLogin();
  
      switch(loginSuccess){
      case 0:
          shutdown();
          break;
  
      case 1:
          startPage();
          controlPanel();
          break;
      }
  }
  </code></pre>