Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
ed8009
7 / 7 / 1
Регистрация: 31.08.2011
Сообщений: 135
#1

Чем заменить calloc? - C++

29.04.2014, 22:59. Просмотров 685. Ответов 7
Метки нет (Все метки)

Здравствуйте, подскажите, как можно заменить
C
1
str2 = (char*)calloc(strlen(str1) + 1, 1);
на простое выделение в С++? Пробовал так :
C++ (Qt)
1
str2 = new char(strlen(str1) + 1);
Не идет...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.04.2014, 22:59
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Чем заменить calloc? (C++):

В чем преимущества new и delete и могут ли они действительно заменить функции calloc, malloc, free, realloc? - C++
Язык программирования C поддерживает функции динамического управления пямятью: calloc, malloc, free, realloc - которые неподдерживают...

В чем разница malloc и calloc? - C++
подскажите пожалуйста,в чем разница malloc и calloc? эмалок выделение динамической памяти а сиалок выделение чистой памяти. в смысле...

calloc - C++
Я, по сути, программист самоучка. Хорошим манерам кодинга не обучен, пишу то, что интересно и по силам мне. Нет,не беспокойтесь, с моими...

calloc, free. - C++
как правильно выделить память для двумерного массива а, при m=5,n=10 используя функцию calloc. и как правильно ее освободить при помощи...

calloc vs malloc - C++
Объясните,пжлста,чем отличается malloc oт calloc?

использование calloc - C++
функция calloc выделяет память только для 4 элементов DWORD sizeFile = GetFileSize(hFile, NULL); char* str; int n = sizeFile...

7
Croessmah
Ушел
Эксперт CЭксперт С++
13557 / 7707 / 872
Регистрация: 27.09.2012
Сообщений: 18,996
Записей в блоге: 3
Завершенные тесты: 1
29.04.2014, 23:11 #2
C++
1
new char [strlen(str1)+1] ;
обнулять вручную
1
ed8009
7 / 7 / 1
Регистрация: 31.08.2011
Сообщений: 135
29.04.2014, 23:18  [ТС] #3
А обнуление будет происходить простым for?:
C++ (Qt)
1
2
3
str2 = new char [strlen(str1)+1] ;
    for (int j = strlen(str1) + 1; j >= 0; j--)
        str2[j] = 0;
0
Jewbacabra
Эксперт PHP
2701 / 2289 / 852
Регистрация: 24.04.2014
Сообщений: 6,866
29.04.2014, 23:31 #4
А ZeroMemory для обнуления не подойдет?
http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx
Или memset
http://www.cplusplus.com/reference/cstring/memset/
0
ed8009
7 / 7 / 1
Регистрация: 31.08.2011
Сообщений: 135
29.04.2014, 23:36  [ТС] #5
Сложновато как то с ZeroMemory)
0
Jewbacabra
Эксперт PHP
2701 / 2289 / 852
Регистрация: 24.04.2014
Сообщений: 6,866
29.04.2014, 23:38 #6
ed8009, а что сложного?
C++
1
2
char* str2 = new char [strlen(str1)+1];
ZeroMemory(str2, strlen(str1)+1);
1
ed8009
7 / 7 / 1
Регистрация: 31.08.2011
Сообщений: 135
29.04.2014, 23:38  [ТС] #7
memset - супер) Спасибо!)
0
Jupiter
Каратель
Эксперт С++
6561 / 3982 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
30.04.2014, 03:18 #8
Цитата Сообщение от Croessmah Посмотреть сообщение
обнулять вручную
C++
1
new char[strlen(str1)+1]();
1
30.04.2014, 03:18
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.04.2014, 03:18
Привет! Вот еще темы с ответами:

Malloc / calloc - C++
здравствуйте. Интересует такой вопрос : динамическая память. Когда мы выделяем память при помощи функции malloc то нас в универе учат...

malloc vs. calloc - C++
Когда стоит использовать malloc , а когда calloc?

Работа с calloc и free в C++ - C++
Всем добрый день!! Уважаемые программисты посмотрите пожалуйста, корректно ли я использую эти функции для динамического выделения памяти,...

Чем заменить Turbo C++? - C++
Здравствуйте,извиняюсь,Если такая тема была уже создана. Не подскажите,чем можно заменить Borland Turbo C++ и C++ builder. Система windows...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.