“Name of project” has triggered a breakpoint

224
18 января 2018, 21:12

Проблема была описанна выше) Смысл программы, что бы находить самое длинное слово 1 строки, которое должно содержаться в 2 других строках. Все строки вводит пользователь. Код программы:

char s1[100], s2[100], s3[100], *ptr=NULL;
int n = 0, b = 0, c = 0;
int *ch1 = new int[n];
int *ch2 = new int[b];
int *ch3 = new int[c];
char **p1 = new char*[n];
for (int i = 0; i < n; i++) {
    char *p1 = new char[n];
}
char **p2 = new char*[b];
for (int i = 0; i < b; i++) {
    char *p2 = new char[b];
}
char **p3 = new char*[c];
for (int i = 0; i < c; i++) {
    char *p3 = new char[c];
}
cout << "Enter the string: ";
gets_s(s1);
cout << "Enter the string: ";
gets_s(s2);
cout << "Enter the string: ";
gets_s(s3);
ptr = NULL;
ptr = strtok(s1, " ");
while (ptr != NULL) {
    p1[n] = ptr;
    n++;
    ch1[n] = strlen(ptr);
    ptr = strtok(NULL, " ");
}
ptr = NULL;
ptr = strtok(s1, " ");
while (ptr != NULL) {
    p2[n] = ptr;
    n++;
    ch2[n] = strlen(ptr);
    ptr = strtok(NULL, " ");
}
ptr = NULL;
ptr = strtok(s1, " ");
while (ptr != NULL) {
    p3[n] = ptr;
    n++;
    ch3[n] = strlen(ptr);
    ptr = strtok(NULL, " ");
}
checker(n,b,c,p1,p2,p3,Max(ch1)); // Программа проверяет условие задания(Выделяет самое длинное слово и проверяет его на наличие в 2 остальных строках)
delete p1, p2, p3, ch1, ch2, ch3;
system("pause");
return 0;
Answer 1
int n = 0, b = 0, c = 0;
int *ch1 = new int[n];
int *ch2 = new int[b];
int *ch3 = new int[c];

Это выделение массивов длины 0.

Это тоже

char **p1 = new char*[n];
for (int i = 0; i < n; i++) {
    char *p1 = new char[n];
}
char **p2 = new char*[b];
for (int i = 0; i < b; i++) {
    char *p2 = new char[b];
}
char **p3 = new char*[c];
for (int i = 0; i < c; i++) {
    char *p3 = new char[c];
}

Зачем вы написали эти циклы, если ни один из них заведомо не выполнится ни разу?

В массивы нулевого размера ничего нельзя записать. У вас же потом вдруг делается

n++;
ch1[n] = strlen(ptr);

т.е. очевидный выход за пределы массива. Потому программа и падает.

READ ALSO
Ошибка с condition variable. c++

Ошибка с condition variable. c++

Не работает этот код:

239
Как построчно ввести целые числа ?(с++)

Как построчно ввести целые числа ?(с++)

На вход даются целые числаНа каждой строке находится какое-то количество этих целых чисел (может и вообще их не быть)

286
Использование QtWebEngine для создания парсера html

Использование QtWebEngine для создания парсера html

С недавнего времени в Qt отсутствует QtWebKit, заменен он на QtWebEngine, по которому очень сложно откопать инфуПриведите небольшой пример запроса...

242
Перетаскивания QWidget с именем в QMainWindow

Перетаскивания QWidget с именем в QMainWindow

Создал тестовое приложение для обучения Qt и его некоторым основам

196