argument of type uint8_t is incompatible with parameter of type char*
<p>I've been getting the title error recently and I'm not quite sure what I'm doing wrong, anyone have any ideas? relevant code below</p>

<p>Rom.h</p>

<pre><code>//Rom.h
#pragma once
#include &lt;fstream&gt;
struct ROM {
  uint8_t* memblock;
  std::fstream rom;
  std::streampos size;
  int flag;

  void ROM::LoadROM(std::string path, int flag);
  void ROM::BinaryDump(std::string path, std::streampos size);
}
</code></pre>

<p>Rom.cpp</p>

<pre><code>//Rom.cpp
#include &lt;iostream&gt;
#include "Rom.h"

void ROM::LoadROM(std::string path, int flag) {
  this-&gt;rom.open(path, std::ios::in | std::ios::binary | std::ios::ate);

  if (rom.is_open()) {
    this-&gt;size = rom.tellg();
    std::cout &lt;&lt; "\nThe Rom is " &lt;&lt; rom.tellg() &lt;&lt; " byte(s) long." &lt;&lt; std::endl;
    this-&gt;memblock = new uint8_t[(unsigned int)this-&gt;size];
    std::cout &lt;&lt; rom.tellg() &lt;&lt; " Bytes of memory have been allocated" &lt;&lt; std::endl;
    rom.seekg(0, std::ios::beg);
    rom.read(this-&gt;memblock, (unsigned int)this-&gt;size);
    std::cout &lt;&lt; "The contents of the file are stored in memory" &lt;&lt; std::endl;
    rom.close();
    if (flag == 0) {
    }
    else {
        BinaryDump(path, this-&gt;size);
    }
  }
}

void ROM::BinaryDump(std::string path, std::streampos size) {
  std::fstream binDump(path, std::ios::out | std::ios::binary);

  binDump.write(this-&gt;memblock, size);
  delete[] this-&gt;memblock;
  binDump.close();
  std::cout &lt;&lt; "The ROM has been dumped" &lt;&lt; std::endl;
}
</code></pre>

<p>Sorry if this is completely obvious but I feel lost here.</p>