initialize_matcher(&matcher, use_regexp, case_sensitive, pattern);
 
-  if(show_hits && matcher.nb_patterns >= 0) {
-    switches = safe_malloc(sizeof(int) * matcher.nb_patterns * 2);
+  if(show_hits) {
+    if(matcher.nb_patterns >= 0) {
+      switches = safe_malloc(sizeof(int) * matcher.nb_patterns * 2);
+    } else {
+      switches = safe_malloc(sizeof(int) * 2);
+    }
   } else {
-    switches = safe_malloc(sizeof(int) * 2);
+    switches = 0;
   }
 
   console_width = getmaxx(stdscr);