0 / 0 / 0
Регистрация: 06.05.2018
Сообщений: 23
|
||||||
1 | ||||||
Передача массива char в функцию05.10.2020, 17:09. Показов 1545. Ответов 3
Привет, неправильно передаю в функцию массив. Подскажите в чем проблема. На сколько я помню имя является указателем на массив.
0
|
05.10.2020, 17:09 | |
Ответы с готовыми решениями:
3
Передача массива char в функцию Передача в функцию массива char Передача массива типа char в функцию Передача массива Char в функцию. Как быть? |
2782 / 1935 / 570
Регистрация: 05.06.2014
Сообщений: 5,600
|
|
05.10.2020, 17:15 | 2 |
Сообщение было отмечено RomulSi как решение
Решение
Сишные массивы не копируются через =. Нет, даже через box.logo[SIZE] = *name не копируются. Это копирует одну букву, причем, мимо массива.
Пользуйтесь strcpy.
1
|
58 / 48 / 14
Регистрация: 23.02.2016
Сообщений: 433
|
|
05.10.2020, 18:33 | 3 |
Renji, а вы не знаете почему они не копируются через присваивание? Массив - это список однородных элементов, а структура позволяет объединять разнородные элементы. Массив описывает список значений, а структура описывает единственное значение. В массиве работает арифметика указателей, если к текущему указателю прибавить единицу, то происходит переход на следующи элемент. А в структуре я не знаю где указатель, возможно на первое поле. В этом причина? Также не очень понятно почему одни языки сохраняют элементы массива построчно (C++ например), а другие - по столбцам (Fortran например). Вроде бы какая разница, ну будет реализована функция доступа к элементу по-другому и всё, а как объём памяти, так и скорость обращения к ней вроде бы не зависит от способа размещения элементов.
0
|
2782 / 1935 / 570
Регистрация: 05.06.2014
Сообщений: 5,600
|
|
05.10.2020, 20:19 | 4 |
"Иной закон из рода в род. от деда переходит к внуку. Он благом был, но в свой черёд. стал из благодеянья мукой." (c) Фауст.
Невозможность копирования массивов это просто рудимент, тянущийся еще откуда-то из прародителей Си. В плюсах можно использовать std::array<char,SIZE> (и переводить в char* через str.data()), оно копируется нормально. Правда, в случае строк оно будет копироваться не очень оптимально (скопирует SIZE символов, даже если в строчке всего одна буква).
0
|
05.10.2020, 20:19 | |
05.10.2020, 20:19 | |
Помогаю со студенческими работами здесь
4
Передача в функцию char*([Warning] deprecated conversion from string constant to 'char*' [-Wwrite-strings]) Передача в функцию char** Передача char в функцию Передача char в функцию Передача FILE и char[x] в функцию Передача в функцию unsigned char [ ] Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |