146 / 146 / 32
Регистрация: 26.10.2008
Сообщений: 782
|
|||||||||||
1 | |||||||||||
memset, memcpy11.09.2011, 03:21. Показов 4569. Ответов 10
Метки нет (Все метки)
Использую MSVS 2008.
Почему memcpy работает только с char? То есть, такой код работает:
0
|
11.09.2011, 03:21 | |
Ответы с готовыми решениями:
10
Memcpy, buffer overflow. Может ли возникнуть ошибка в функции memcpy memset() memset по поводу memset |
Каратель
|
|
11.09.2011, 03:32 | 2 |
2
|
146 / 146 / 32
Регистрация: 26.10.2008
Сообщений: 782
|
|
11.09.2011, 04:18 [ТС] | 3 |
Спасибо! Сразу не заметил.
0
|
146 / 146 / 32
Регистрация: 26.10.2008
Сообщений: 782
|
|
11.09.2011, 12:24 [ТС] | 5 |
А почему рекомендовать не можете? Если 3-й параметр не первышает допустимого значения, то я в этой функции ничего плохого не вижу.
0
|
Заблокирован
|
||||||
11.09.2011, 13:35 | 6 | |||||
memcpy(move,set) в качестве своих параметров принимают адреса блоков памяти, и в них при желании можно всё запихнуть, не забывая при этом вбить (void *) перед параметром
- думаю в случае статических массивов он просто не работает(покрайней мере на старых версиях), мой компилятор выдал не могу преобразовать int *()(3) в (void *) - на сие мой старенький компилятор кричал что не может выполнить преобразование в (void *), думаю правельней будет вот так писать
0
|
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
|
|
11.09.2011, 13:39 | 7 |
0
|
Диссидент
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
|
||||||
11.09.2011, 14:09 | 8 | |||||
-=ЮрА=-, конструкции &a[0] и a совершенно эквивалентны.
Так что можно писать
Берегут нашего брата, непутевого программиста
0
|
2381 / 1665 / 279
Регистрация: 29.05.2011
Сообщений: 3,399
|
|
11.09.2011, 15:56 | 9 |
Нет. У них разные типы. Хотя во многих случаях тип второго может неявно преобразовываться в тип первого.
1
|
Модератор
12454 / 7479 / 1752
Регистрация: 25.07.2009
Сообщений: 13,755
|
|
11.09.2011, 16:00 | 10 |
Это в С++ приведение указателя к void* и обратно работать не будет, в С пограммах без сучка/задоринки. Но к слову в программах на С++ вообще функции С лучше без крайней нужды не использовать, а уж те, что для работы с памятью - особенно. На POD типах оно может и отработает, а вот с объектами произвольного класса - беда. Вот не знает memcpy() про конструкторы, деструкторы и прочие прелести ООП...
2
|
146 / 146 / 32
Регистрация: 26.10.2008
Сообщений: 782
|
|
11.09.2011, 16:28 [ТС] | 11 |
easybudda, зато эти функции работают быстрее, особенно с большим количеством данных. Хотя с точки зрения безопасности их лучше остерегаться.
0
|
11.09.2011, 16:28 | |
11.09.2011, 16:28 | |
Помогаю со студенческими работами здесь
11
Неправильное использование memset Memset для двухмерного массива Что делает memset в приведенном коде Порядок хранения структур в ОЗУ и memset Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |