   std::string benchmark = params.benchmark;
 
   // Create a new argument array without filename to pass to NVBench.
-  char* args[argc - 2];
-  int j = 0;
-  for (int i = 0; i < argc; i++) {
-    if (strcmp(argv[i], "--market") == 0 || strcmp(argv[i], "-m") == 0) {
-      i++;
-      continue;
+  if (params.help) {
+    const char* args[1] = {"-h"};
+    NVBENCH_BENCH(mst_bench);
+    NVBENCH_BENCH(bfs_bench);
+    NVBENCH_MAIN_BODY(1, args);
+
+  } else {
+    char* args[argc - 2];
+    int j = 0;
+    for (int i = 0; i < argc; i++) {
+      if (strcmp(argv[i], "--market") == 0 || strcmp(argv[i], "-m") == 0) {
+        i++;
+        continue;
+      }
+      args[j] = argv[i];
+      j++;
     }
-    args[j] = argv[i];
-    j++;
+
+    NVBENCH_BENCH(mst_bench);
+    NVBENCH_BENCH(bfs_bench);
+    NVBENCH_MAIN_BODY(argc - 2, args);
   }
-
-  NVBENCH_BENCH(mst_bench);
-  NVBENCH_BENCH(bfs_bench);
-  NVBENCH_MAIN_BODY(argc - 2, args);
 }
struct parameters_t {
  std::string filename;
  std::string benchmark;
  cxxopts::Options options;

  /**

    auto result = options.parse(argc, argv);

    if (result.count("help")) {
      help = true;
      std::cout << options.help({""});
      std::cout << "  [optional nvbench args]" << std::endl << std::endl;
    } else {
      if (result.count("market") == 1) {
        filename = result["market"].as<std::string>();
        if (util::is_market(filename)) {
        } else {
          std::cout << options.help({""});
          std::cout << "  [optional nvbench args]" << std::endl << std::endl;
          std::exit(0);
        }
      } else {
        std::cout << options.help({""});
        std::cout << "  [optional nvbench args]" << std::endl << std::endl;
        std::exit(0);
      }

      if (result.count("benchmark") == 1) {
        benchmark = result["benchmark"].as<std::string>();
        if (std::find(benchmarks.begin(), benchmarks.end(), benchmark) ==
            benchmarks.end()) {
          std::cout << "Error: invalid benchmark" << std::endl;
          std::exit(0);
        }
      } else {
        benchmark = "all";
      }
    }
  }
};
