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

Разница между T **a и T *a[const_size] - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Действия с комплексными числами http://www.cyberforum.ru/cpp-beginners/thread535479.html
/* Использованы материалы с _http://dmtsoft.ru/bn/370/as/oneaticleshablon/ */ #include <iostream> #include <cmath> using namespace std; class Complex {
C++ Создать линейный двунаправленный список, упрорядоченный по убыванию Создать линейный двунаправленный список, упрорядоченный по убыванию. http://www.cyberforum.ru/cpp-beginners/thread535476.html
C++ Дана последовательность из N целых чисел (где N - константа)
Дана последовательность из N целых чисел (где N - константа). Определить количество инверсий в этой последовательности (т.е. таких пар элементов, в которых большее число находится слева от меньшего: xi > xj при i<j) нужно использовать минимум операторов
C++ Распечатать квадраты только 3-значных чисел от 1 до N
2. Распечатать квадраты только 3-значных чисел от 1 до N. 3. Распечатать все числа от 1 до N, не оканчивающиеся на цифру 3. 4. Распечатать все числа от 1 до N, имеющие делители 3, 4 и 7. 5. Распечатать все числа от 1 до N, у которых младшая цифра является делителем числа N. 6. Распечатать кубы всех нечетных чисел от 1 до N. 7. Распечатать все числа от 1 до N, у которых первая и вторая цифра...
C++ Распечатать все числа от 1 до N, у которых остатки от деления на число Z не превышают числа M. http://www.cyberforum.ru/cpp-beginners/thread535447.html
1. Распечатать все числа от 1 до N, у которых остатки от деления на число Z не превышают числа M. Помогите написать((
C++ Двумерные массивы. Четные строки матрицы сдвинуть на К элементов вправо. Используя функции сформировать двумерный массив. Все четные строки матрицы сдвинуть циклически на К элементов вправо. Первую часть задания я смог сделать, а вот вторая не получается. #include <conio.h> #include <stdlib.h> #include <math.h> #include <iostream.h> подробнее

Показать сообщение отдельно
Whiteha
Программист
33 / 33 / 4
Регистрация: 08.07.2011
Сообщений: 190
Записей в блоге: 1
31.03.2012, 21:20     Разница между T **a и T *a[const_size]
C++
1
T c_a[10][10]; // Здесь тип c_a это T(*)[10]
C++
1
2
3
4
5
T **d_a = (T**) malloc(sizeof(T) * size);
    for (i = 0; i < size; ++i)
    {
        d_a[i] = (T*) malloc(sizeof(T) * size);
    } // Здесь тип d_a это T**
При этом первую версию передать в следующую функцию нельзя
C++
1
2
3
4
T f(T **m)
{
    return m[0][0];
}
Но почему, ведь в обоих случаях независимо от метода выделения памяти имя двумерного массива должно быть **, разве нет? Неудача с применением reinterpret_cast<T**> (a) при попытке вызова функции f() с первой версией подтверждает их различное устройство.

Почему так? В чём различие для компилятора?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 13:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru