strtoul Error with Arduino Mo

I have been using this code for different reasons for over a year with Arduino:

uint8_t CurrentReadst[16];
uint8_t temp[16] = {' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '}; // Buffer to store the temp UID

void setup() {
  // put your setup code here, to run once:
Serial.begin(115200);
}

void loop() {
  // put your main code here, to run repeatedly:
if (strncmp(CurrentReadst, temp, 16) == 0) {
           Serial.println("exit read");
           Serial.println("");
           // Do something here if does not =
          }
}

I was adjusting the code to get it ready for ARDUINO NANO 33 IOT
But when I check the above code I get this error:

invalid conversion from 'uint8_t* {aka unsigned char*}' to 'const char*' [-fpermissive]

Any idea as to why?
Thanks

Sometimes a newer compiler is choosen, sometimes there are changes in the compiler settings, sometimes a newer board has its own build environment which is different from other build environments, or perhaps you have changed something in the preferences.
You can cast the parameters to char *

Since they are not strings (not zero-terminated), I suggest to use memcmp().

Thanks that did the trick!

Now I have some more errors.

uint8_t CurrentReadst[16];
uint8_t temp[16];// = {'1', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '}; // Buffer to store the temp UID
uint8_t data[16];

void setup() {
  // put your setup code here, to run once:
  Serial.begin(115200);
}

void loop() {
  int result;
  int repeatRead = 0;
  result = memcmp(CurrentReadst, temp, 16);
  if (result == 0) {
    Serial.println("exit read");
    Serial.println("");
  }
  else if (repeatRead == 0) {
    Serial.println("match read");
  }
  else {
    
  }

  uint8_t dataz[] = { '0', '0'};
  int a = 0;
  for (int i = 14; i < 16; i++) // i = 14; i < 16
  {
    dataz[a] = uint8_t(data[i]);
    a++;
  }
  //Now convert the dataz to a number
  unsigned long number = strtoul( dataz, NULL, 10 );
  Serial.println(number);
}
invalid conversion from 'uint8_t* {aka unsigned char*}' to 'const char*' [-fpermissive]

I guess I have some work to do in understanding my I am getting theses errors

Thanks

This is not the whole code I was having issues pasting it. I do not want to change my sketch tell I understand why it works with Uno board and not ARDUINO NANO 33 IOT.
Thanks

This will fix it:

unsigned long number = strtoul( (char *) dataz, NULL, 10 );

They have different build environments. The Arduino Uno uses the environment for microcontrollers of the AVR family and the Arduino NANO 33 IoT uses the SAMD Cortex M0 environment with its own libraries.
Since the C++ libraries are standard and the GCC compiler is used for both, it should be very similar.
However, the compiler flags are not the same.
For the Arduino Uno, the "-fpermissive" is used, which turns some errors into warnings. That flag is not used when compiling for the Arduino NANO 33 IoT.

I have turned on all compiler warnings in the preferences. They have indeed the same message, but the error is turned into a warning for the AVR build environment.
For the Arduino Uno the compilers says: "warning: invalid conversion from 'uint8_t* {aka unsigned char*}' to 'const char*' [-fpermissive]".
For the Arduino NANO 33 IoT it says: "error: invalid conversion from 'uint8_t* {aka unsigned char*}' to 'const char*' [-fpermissive]".

In the file "hardware\arduino\avr\platform.txt" you can find that the "-fpermissive" compiler option is only used for the AVR build environment.

I suggest to do it properly and put that cast to a char * in your sketch.

Thank you for helping in understanding the issue and for the fix