Форум программистов, компьютерный форум CyberForum.ru

Шаблонная функция с явной специализацией не возвращает динамический массив - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ for заменить на while http://www.cyberforum.ru/cpp-beginners/thread397831.html
for( i=0; i<(n-1);i++) { if (a==0 && a==0) zero=true; } как написать используя оператор while(условие)???
C++ Составьте пожалста блок-схему #include <iostream> #include <ctime> #include <vector> #include <algorithm> #include <iterator> int getUnique(const std::vector<int> &vec, int max) { int val; do http://www.cyberforum.ru/cpp-beginners/thread397815.html
[C++] ассемблерный модуль C++
Привет всем. Я вот тут пытаюсь ассемблерную вставку в с++ запихнуть... А не получается. Точнее получается... Но как - то криво. Пишу просто для пробы: ... void printab(int ); int x1; asm("pushl %0\n\tcall printab \n\tpop %%eax" : : "r" (x1)); ...
C++ Как задать динамически массивы ?
Как задать динамически массив? Какой заголовчный файл необходим? Int *B=new A n=100 Заработает ли?
C++ Как в функцыю передать массив http://www.cyberforum.ru/cpp-beginners/thread397801.html
#include "stdafx.h" #include <ctime> #include <iostream> double my(double x ) { int i,j; //Вот сюда }
C++ Все возможные перестановки букв слова - нужен алгоритм Доброго времени суток, форумчане. Помогите пожалуйста найти/составить алгоритм решения следующей задачи: Дано слово. Найти все возможные варианты перестановки его букв. Пример: Дано: abc Вывести: acb abc bac подробнее

Показать сообщение отдельно
Infinity3000
1058 / 577 / 24
Регистрация: 03.12.2009
Сообщений: 1,255
03.12.2011, 16:27  [ТС]     Шаблонная функция с явной специализацией не возвращает динамический массив
Потому что дальше я хочу вывести его на экран, а соответственно ничего не выводится! Также нахождения суммы(слияние всех фамилий в массиве)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
template <typename T> 
T sum(T* mas, int n)
{
    T sum = mas[0];
    for (int i = 1; i < n; ++i )
    {
         sum += mas[i];
    }
    return sum;
}
 
template <>
char* sum<char*>(char **mas, int n)
{
    char *sum = mas[0];
    for (int i = 1; i < n; ++i )
    {
          strcat(sum, mas[i]);
    }
    return sum;
}

максимальный элемент(самая длинная фамилия!) !

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
template <typename T> 
T maximum(T* mas, int n)
{
    T max = mas[0];
    for (int i = 1; i < n; ++i )
    {
        if ( mas[i] > max )
            max = mas[i];
    }
    return max;
}
 
template<>
 char* maximum<char*>(char **mas, int n)
{
    char *max = mas[0];
    int max_len = strlen(mas[0]);
    for ( int i = 1; i < n; ++i )
    {
        int len = strlen(mas[i]);
        if ( len > max_len )
        {
            max = mas[i];
            max_len = len;
        }
    }
    return max;
}
Если с массивом сразу это делать то все нормально ищет!!

Но если я передаю его в функцию, которая должна возвратить вновь созданный массив с элементами передаваемого

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
template <typename T> 
T *DynMass(T *mas, int n)
{
   T *dynamic = new T [n + 2]; //динамический масив
   
   for (int i = 0; i < n; i++)
   {
      dynamic[i] = mas[i]; 
   }
   dynamic[n] = maximum(mas, n); 
   dynamic[n + 1] = sum(mas, n); 
 
 
   delete [] mas;
 
   return dynamic;
}
 
template <> 
char **DynMass<char*>(char **mas, int n)
{
   char **dynamic = new char *[n]; //динамический масив
  
        for(int i = 0; i < n; i++)
        {
                dynamic[i] = mas[i];
        }
        
   delete [] *mas;
 
   return dynamic;
}

то уже ни сумма , ни максимум, ни вывод на экран не происходит!

Добавлено через 1 минуту
Функция вывод на экран

C++
1
2
3
4
5
6
7
8
template<int n, typename T>
void InitMas(T *mas)      //передача массива
{  
    for(int i = 0; i < n; ++i)
    {
        cout << mas[i] << " "; 
    }
}
вызов

C++
1
InitMas<nW>(words);
Не понятно вообще!!
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru