Why is the compiler giving a warning when I assign

arg_array[j] = malloc(sizeof(char)*(strlen(new_curr_token) + 1));
int instruction_count = 0;
char buffer[MAXLINE + 1];
strcpy(buffer, line);
curr_token = strtok(NULL, delimiter);
while (curr_token != NULL) {
    instruction_count++;
    curr_token = strtok(NULL, delimiter);
}
char* arg_array = malloc(sizeof(char*) * (instruction_count + 1));
if (arg_array == NULL) {
    perror("malloc");
    exit(1);
}
char* new_curr_token = strtok(buffer, delimiter);
new_curr_token = strtok(NULL, delimiter);
int j = 0;
while (new_curr_token != NULL) {
    arg_array[j] = malloc(sizeof(char) * (strlen(new_curr_token) + 1));
    if (arg_array[j] == NULL) {
        perror("malloc");
        exit(1);
    }
    strcpy(arg_array[j], new_curr_token);
    new_curr_token = strtok(NULL, delimiter);
    j++;
}

for (int i = 0; i < instruction_count; i++) {
    printf("%s\n", arg_array[i]);
}
}
}