-4 / 1 / 0
Регистрация: 24.10.2018
Сообщений: 23
|
||||||
1 | ||||||
Run-Time Check Failure #2 - Stack around the variable 'fish2' was corrupted12.05.2019, 22:15. Показов 2536. Ответов 23
Метки нет (Все метки)
При этом программа работает правильно.
0
|
12.05.2019, 22:15 | |
Ответы с готовыми решениями:
23
Run-Time Check Failure #2 - Stack around the variable 'c' was corrupted Run-Time Check Failure #2 - Stack around the variable 'A' was corrupted Run-Time Check Failure #2 - Stack around the variable 'n' was corrupted Run-Time Check Failure #2 - Stack around the variable '.' was corrupted |
6105 / 3460 / 1405
Регистрация: 07.02.2019
Сообщений: 8,791
|
||||||
12.05.2019, 22:21 | 2 | |||||
1
|
-4 / 1 / 0
Регистрация: 24.10.2018
Сообщений: 23
|
|
12.05.2019, 22:27 [ТС] | 3 |
zayats80888, ошибка не пропала. Это не помогает.
0
|
6579 / 4564 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
|
|
12.05.2019, 22:35 | 4 |
1
|
-4 / 1 / 0
Регистрация: 24.10.2018
Сообщений: 23
|
||||||
12.05.2019, 22:41 [ТС] | 5 | |||||
0
|
6105 / 3460 / 1405
Регистрация: 07.02.2019
Сообщений: 8,791
|
||||||
12.05.2019, 22:50 | 6 | |||||
во первых
в третьих, вы уверены что в функцию передаются корректные строки? (c '\0' в конце)
1
|
6579 / 4564 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
|
|
12.05.2019, 22:57 | 7 |
Значит ошибка ещё выше.
А вообще, строка копируется обычно в неинициализированный буфер (скорее всего у тебя так и есть). Т.е. поиск нуля в str1 - абсолютно бессмысленная вещь - он будет пробегать всю доступную память пока случайно не встретится ноль. Покажи остальной код.
1
|
-4 / 1 / 0
Регистрация: 24.10.2018
Сообщений: 23
|
|
12.05.2019, 23:01 [ТС] | 8 |
zayats80888
1. Это не работает (скрин ниже). 2. Чтоб когда первая строка была больше чем вторая, не оставалось лишних символов. 3. Да. Ведь всё работает нормально. Просто у меня постоянно это исключение.
0
|
-4 / 1 / 0
Регистрация: 24.10.2018
Сообщений: 23
|
||||||
12.05.2019, 23:05 [ТС] | 9 | |||||
oleg-m1973, там есть ноль. Второй цикл (без заполнения пробелами) работает так как надо. Этот, если без заполнения пробелами, тоже. И вот всё что как-то связано с этими строками:
0
|
6105 / 3460 / 1405
Регистрация: 07.02.2019
Сообщений: 8,791
|
||||||
12.05.2019, 23:10 | 10 | |||||
1
|
6579 / 4564 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
|
|
12.05.2019, 23:17 | 11 |
Нет, нету. strcpy_k(this->clr1, clr1); в this->clr1 - мусор
Убери этот while (str1[size1] != '\0') { - Он не нужен вообще ни под каким видом
0
|
6105 / 3460 / 1405
Регистрация: 07.02.2019
Сообщений: 8,791
|
||||||
12.05.2019, 23:23 | 12 | |||||
так короче
1
|
6579 / 4564 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
|
|
12.05.2019, 23:24 | 13 |
И не менее бессмысленно. Единственное, что нужно контролировать при копировании строк - это размер выходного буфера, str1. Здесь этого нет.
1
|
-4 / 1 / 0
Регистрация: 24.10.2018
Сообщений: 23
|
|
12.05.2019, 23:24 [ТС] | 14 |
zayats80888 и oleg-m1973, спасибо огромное. zayats80888 уже дал рабочий код. oleg-m1973 ожидается, что эту функцию не только для этого класса буду использовать.
Извините если был в каких то моментах слишком глупый. Теорию вроде знаю, а практикуюсь слишком мало, поэтому много туплю.
0
|
6105 / 3460 / 1405
Регистрация: 07.02.2019
Сообщений: 8,791
|
|
12.05.2019, 23:30 | 15 |
1
|
6579 / 4564 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
|
||||||
12.05.2019, 23:30 | 16 | |||||
Сообщение было отмечено kriks_ как решение
Решение
Это не рабочий код (как минимум ноль в конце надо добавить). Ещё раз повторяю - в str1 мусор, нельзя полагаться на его содержимое.
Вот классический цикл для копирования строк
1
|
-4 / 1 / 0
Регистрация: 24.10.2018
Сообщений: 23
|
|
12.05.2019, 23:33 [ТС] | 17 |
oleg-m1973, спасибо.
0
|
6105 / 3460 / 1405
Регистрация: 07.02.2019
Сообщений: 8,791
|
||||||
12.05.2019, 23:35 | 18 | |||||
Сообщение было отмечено kriks_ как решение
Решение
так безопаснее:
1
|
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
|
||||||
12.05.2019, 23:38 | 19 | |||||
zayats80888, а без этой строки будет работать так ?
0
|
-4 / 1 / 0
Регистрация: 24.10.2018
Сообщений: 23
|
|
12.05.2019, 23:41 [ТС] | 20 |
zayats80888, oleg-m1973, если есть время, можете объяснить зачем в цикле (*str2)?
0
|
12.05.2019, 23:41 | |
12.05.2019, 23:41 | |
Помогаю со студенческими работами здесь
20
Run-Time Check Failure #2 - Stack around the variable 'a' was corrupted. Run-Time Check Failure #2 - Stack around the variable 'C' was corrupted Run-Time Check Failure #2 - Stack around the variable 'dt' was corrupted Run-Time Check Failure #2 - Stack around the variable 'a' was corrupted Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |