Проблема error reading characters of string

344
16 декабря 2017, 07:05

Здравствуйте! Можете объяснить в чем причина ошибки error reading characters of string в данном коде:

#include "stdafx.h"
#include<iostream>
#include<cstring>
char s1[100];
char s2[100];
using namespace std;
void Words(char *s1,char *s2) {
int k = 0;
char*p1;
char*np1 = NULL;
char*p2;
char*np2 = NULL;
char *m[20] = {};
char *a[20] = {};
char s3[100] = {};
for (int i = 0; i < 20; i++) {
    char n[50] = {};
    char b[50] = {};
    m[i] = n;
    a[i] = b;
}
char delimeter[] = " ,.!?;:";
p1 = strtok_s(s1, delimeter, &np1);
while (p1!= NULL) {
    strcpy(m[k], p1);
    k++;
    p1 = strtok_s(NULL, delimeter, &np1);
}
k = 0;
p2 = strtok_s(s2, delimeter, &np2);
while (p2 != NULL) {
    strcpy(a[k], p2);
    k++;
    p2 = strtok_s(NULL, delimeter, &np2);
}
for (int i = 0; i < 20; i++) {
    for (int j = 0; j < 20; j++) {
        if (strcmp(m[i], a[j])!= 0 && m[i]!=0 && a[j]!=0) {
            strcat(s3, m[i]);
        }
    }
}
puts(s3);
for (int i = 0; i < 20; i++) {
    delete m[i];
    delete a[i];
   }
}
int main(){
gets_s(s1);
gets_s(s2);
Words(s1,s2);
return 0;
}
READ ALSO
Пересечение двух прямоугольников c++

Пересечение двух прямоугольников c++

Есть два прямоугольника сторони, которого паралельни к осям и они пересекаютсяНам известно:

209
RegOpenKeyExA выдает ошибку: идентификатор не найден

RegOpenKeyExA выдает ошибку: идентификатор не найден

Использую эту функцию в консольном приложении, все ок, если использую в оконном приложении появляется ошибка: идентификатор не найденwindows

168