powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / инициализация указателя
24 сообщений из 24, страница 1 из 1
инициализация указателя
    #34021095
bemtaill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет. Вопрос такой: надо объявить и инициализировать указатель на массивы int. Делаю:
Код: plaintext
1.
int *((*p)[ 5 ]);
*p=(int(*)[ 5 ])(new int[ 5 ]);
В чем я не прав?

PS: вариант int** не подходит. Нужно именно указатель на массивы int.
...
Рейтинг: 0 / 0
инициализация указателя
    #34021168
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bemtaillПривет. Вопрос такой: надо объявить и инициализировать указатель на массивы int. Делаю:
Код: plaintext
1.
int *((*p)[ 5 ]);
*p=(int(*)[ 5 ])(new int[ 5 ]);
В чем я не прав?

PS: вариант int** не подходит. Нужно именно указатель на массивы int.

Почему не подходит?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
int ap[ 5 ];
int **p;
int i;
int n_massives= 10 ;

p=(int *)malloc(sizeof(int*)*n_massives);
p[ 0 ]=ap;
i=p[ 0 ][ 3 ];

...
Рейтинг: 0 / 0
инициализация указателя
    #34021173
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akh

блин, две звезды.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
int ap[ 5 ];
int **p;
int i;
int n_massives= 10 ;

p=(int **)malloc(sizeof(int*)*n_massives);
p[ 0 ]=ap;
i=p[ 0 ][ 3 ];

...
Рейтинг: 0 / 0
инициализация указателя
    #34021233
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а так?
Код: plaintext
1.
int (*p)[ 5 ];
p=&(new int[ 5 ]);
...
Рейтинг: 0 / 0
инициализация указателя
    #34021252
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот ещё можешь почитать про типы :)
...
Рейтинг: 0 / 0
инициализация указателя
    #34021278
bemtaill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Че то я с утра еще не проснулся:) в общем не много не правильно вопрос поставил. Нужен указатель на указатель на массив инт! Во как.
Akh Akh

блин, две звезды.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
int ap[ 5 ];
int **p;
int i;
int n_massives= 10 ;

p=(int **)malloc(sizeof(int*)*n_massives);
p[ 0 ]=ap;
i=p[ 0 ][ 3 ];



я имею ввиду что так можно сделать, но мне надо имено как я хочу:) короче тренеруюсь...

автора так?
int (*p)[5];
p=&(new int[5]);

int (*p)[5]; - указатель на массив инт. А мне надо указатель на указатель на массив инт....
...
Рейтинг: 0 / 0
инициализация указателя
    #34021331
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а ты хочешь р проинициализировать просто адресом указателя на массив или ещё хочешь заодно тот указываемый указатель проинициализировать адресом массива? Там ещё придётся выделять память под указываемый указатель.
...
Рейтинг: 0 / 0
инициализация указателя
    #34021336
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
или даже под массив указателей на массив.
...
Рейтинг: 0 / 0
инициализация указателя
    #34021337
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нарисуй, что тебе надо.
...
Рейтинг: 0 / 0
инициализация указателя
    #34021359
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bemtaill
автора так?
int (*p)[5];
p=&(new int[5]);

int (*p)[5]; - указатель на массив инт. А мне надо указатель на указатель на массив инт....

Я так понимаю, две звезды тогда надо поставить.
...
Рейтинг: 0 / 0
инициализация указателя
    #34021368
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
этого мало. Конструкция многоэтажная и нужно будет выделять память под указываемый указатель. Короче, фсем осваивать живопись.
...
Рейтинг: 0 / 0
инициализация указателя
    #34021395
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это как если у тебя int ****p; то если ты хочешь, чтобы оно указывало в конечном итоге на инт, тебе придётся выделить память под три промежуточных указателя и сцепить их в паровоз.
...
Рейтинг: 0 / 0
инициализация указателя
    #34021436
bemtaill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вроде так получется...
...
Рейтинг: 0 / 0
инициализация указателя
    #34021439
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maXmoэтого мало. Конструкция многоэтажная и нужно будет выделять память под указываемый указатель. Короче, фсем осваивать живопись.

Само собой. Я про синтаксис типа.
...
Рейтинг: 0 / 0
инициализация указателя
    #34021506
bemtaill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
по идее же

если р объявляем как int *((*p)[5]);

то:

new int[5] - *int;

приводим:

(int(*)[5])(new int[5]) - int(*)[5]

тогда :

*p - как раз указывает на (int(*)[5])

и строчка:

*p=(int(*)[5])(new int[5]);

должна работать.
...
Рейтинг: 0 / 0
инициализация указателя
    #34021527
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
int (*p[])[ 5 ]; //массив указателей
p=new (*[ 100 ])[ 5 ]; //сто указателей
p[ 8 ]=&(new int[ 5 ]); //в девятом указателе - адрес нового массива
(*p[ 8 ])[ 4 ]=- 1 ; //заносим инт
не проверял
...
Рейтинг: 0 / 0
инициализация указателя
    #34021551
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
int (*p[])[ 5 ]; //массив указателей
p=new int (*[ 100 ])[ 5 ]; //сто указателей
p[ 8 ]=&(new int[ 5 ]); //в девятом указателе - адрес нового массива
(*p[ 8 ])[ 4 ]=- 1 ; //заносим инт
забыл тип :)
...
Рейтинг: 0 / 0
инициализация указателя
    #34021916
bemtaill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maXmo
Код: plaintext
1.
2.
3.
4.
int (*p[])[ 5 ]; //массив указателей
p=new int (*[ 100 ])[ 5 ]; //сто указателей
p[ 8 ]=&(new int[ 5 ]); //в девятом указателе - адрес нового массива
(*p[ 8 ])[ 4 ]=- 1 ; //заносим инт
забыл тип :)

неа. в первой строчке :
Size of 'p' is unknown or zero
...
Рейтинг: 0 / 0
инициализация указателя
    #34021939
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
значит, не пашет, пиши **p
...
Рейтинг: 0 / 0
инициализация указателя
    #34021953
bemtaill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
лана, задача учебная, просто на извращения потянуло... Пасибо всем.
...
Рейтинг: 0 / 0
инициализация указателя
    #34022325
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
int *p = ...;
...
Рейтинг: 0 / 0
инициализация указателя
    #34022886
bemtaill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivint *p = ...;

гм... хорошо сказал.
...
Рейтинг: 0 / 0
инициализация указателя
    #34043911
pirovindos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bemtaillПривет. Вопрос такой: надо объявить и инициализировать указатель на массивы int. Делаю:
Код: plaintext
1.
int *((*p)[ 5 ]);
*p=(int(*)[ 5 ])(new int[ 5 ]);
В чем я не прав?

PS: вариант int** не подходит. Нужно именно указатель на массивы int.

По опыту: для построения такий конструкциях можно использовать typedef сложного типа, а потом объявлять на него указатель.
...
Рейтинг: 0 / 0
инициализация указателя
    #34045186
Gryz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИМХО, автор объявил таким образом указатель на массив размерности 5, содержащий в себе int*, а не то, что он говорит.

int * ((*p)[5]);
int * (x)[5];
p = & x;
...
Рейтинг: 0 / 0
24 сообщений из 24, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / инициализация указателя
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]