|
0 / 0 / 0
Регистрация: 17.09.2010
Сообщений: 15
|
||||||
Назначение - конкатенация строк s1 и s2, не используя библиотечную функцию - strcat25.01.2011, 15:41. Показов 7504. Ответов 14
Метки нет (Все метки)
//error C2065: 'р1' : undeclared identifier // error C2100: illegal indirection
0
|
||||||
| 25.01.2011, 15:41 | |
|
Ответы с готовыми решениями:
14
Заполнить матрицу случайными числами не используя библиотечную функцию rand Используя указатели написать функцию strcat Написать собственную функцию strcat - сцепление строк |
|
Модератор
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
|
||||||
| 25.01.2011, 15:51 | ||||||
1
|
||||||
|
0 / 0 / 0
Регистрация: 17.09.2010
Сообщений: 15
|
|
| 25.01.2011, 15:54 [ТС] | |
|
Спасибо большое!
0
|
|
|
2 / 2 / 0
Регистрация: 26.09.2014
Сообщений: 13
|
||
| 26.09.2014, 03:56 | ||
|
0
|
||
|
1123 / 794 / 219
Регистрация: 15.08.2010
Сообщений: 2,185
|
||||||
| 26.09.2014, 04:13 | ||||||
|
evsign,
Ахтунг: есть опасность вылезти за пределы первой строки
1
|
||||||
|
2 / 2 / 0
Регистрация: 26.09.2014
Сообщений: 13
|
||||||
| 26.09.2014, 04:24 | ||||||
|
Дело в том, что у меня на курсах сейчас попалось такое задание. Написать функцию конкатенации 2х строк и значение нужно сохранить в первую. Я адаптировал под себя этот вариант и тест на сайте прошёл, только вот локально у меня выходит ошибка *** stack smashing detected *** и происходит аварийная остановка, хотя перед этим код выполняется и выводит соединённую строку.
Адаптированный код выглядит вот так:
Добавлено через 2 минуты Спасибо. Примерно так всё и представлял) Остался только вопрос в том, что содержится в *p в условиях циклов? Там будет находиться адрес или разыменованное значение? А *** stack smashing detected *** - это и есть то вылезание за пределы, что вы имели ввиду?
0
|
||||||
|
1123 / 794 / 219
Регистрация: 15.08.2010
Сообщений: 2,185
|
||||
| 26.09.2014, 04:32 | ||||
|
1
|
||||
|
2 / 2 / 0
Регистрация: 26.09.2014
Сообщений: 13
|
|
| 26.09.2014, 04:39 | |
|
А почему тогда, если в моём варианте, к примеру указать char a[9] = "Hello, "; то код выполнится без ошибки?
Ведь 9ти ячеек серавно мало для этих 2х строк вместе взятых.
0
|
|
|
1123 / 794 / 219
Регистрация: 15.08.2010
Сообщений: 2,185
|
||
| 26.09.2014, 04:49 | ||
|
В любом случае, выделяйте достаточно памяти под первый массив, либо делайте проверку.
0
|
||
|
2 / 2 / 0
Регистрация: 26.09.2014
Сообщений: 13
|
||
| 26.09.2014, 05:02 | ||
|
компилятор g++ 4.9. Ubuntu) Целостность второго массива проверял выводом его значения и через sizeof. Т.к. вывело ожидаемые значения, то получается что массив цел, правильно? Подскажите пожалуйста ещё момент по-поводу *p в условии циклов. Там будет содержаться адрес массива или разыменованное значение? Добавлено через 4 минуты А вот sizeof(a) вывело 9. Хотя там должно быть больше)
0
|
||
|
1123 / 794 / 219
Регистрация: 15.08.2010
Сообщений: 2,185
|
||
| 26.09.2014, 05:03 | ||
|
разыменованное значение
Просто подумайте, был бы там адрес, инкременируя его, мы бы достигла когда-нибудь значения false (0), которое необходимо для выхода из цикла. А так мы натыкаемся на адрес нулевого символа, разыменовываем его и опаньки, false. Не по теме:
а так всегда пожалуйста. [del] Не по теме: что-то форум приболел даблпостом, осень...
1
|
||
|
2 / 2 / 0
Регистрация: 26.09.2014
Сообщений: 13
|
|||||||||||||||||||||
| 26.09.2014, 05:26 | |||||||||||||||||||||
|
Блин, не могу догнать тогда немного другой момент.
Почему cout << p << endl; выводит всю строку, ведь по идее должен же выводить адресс в 0x виде. Или это просто фишка компилятора, что он автоматом выводит все последующие значения из памяти до \0, если увидит адрес типа чар? И почему тогда, если первый цикл сделать:
Если сделать так:
0
|
|||||||||||||||||||||
|
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
|
|||||||||
| 26.09.2014, 06:01 | |||||||||
|
Добавлено через 1 минуту Добавлено через 9 минут А ++p делает инкремент содержимого указателя (адреса строки, который в нём содержится). Адрес самого указателя при этом не меняется. Добавлено через 2 минуты Вот так будет видно:
1
|
|||||||||
|
Форумчанин
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
|
||||||
| 26.09.2014, 11:23 | ||||||
|
На С++ (а мы в этом разделе) это выглядит так:
0
|
||||||
| 26.09.2014, 13:51 | |
|
0
|
|
| 26.09.2014, 13:51 | |
|
Помогаю со студенческими работами здесь
15
Конкатенация строк через функцию Используя функцию копирования строк, организуйте конкатенацію и копирование строк в четвертый массив, содержащий полные имена Максимальный размер строки отправляемый в библиотечную функцию Почему компилятор ругается на библиотечную функцию _atold() ?
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога
Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|