Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Передача адреса указателя в функцию / 15 сообщений из 15, страница 1 из 1
16.05.2007, 00:30
    #34527817
тот самый
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача адреса указателя в функцию
Привет всем!

Вот с толкнулся с такой проблемой:

type *p;
//далее этой переменной присваивается что то например каой нить функцией
p=CreateType(...);

Дальше я хочу передать переменную *p в какую нить функцию. В этой функции я произвожу действия которые заставляют изменить адрес переданой переменной внутри данной функции. Возвратившись из функции я буду работать с переменной p адрес которой будет другой.

Как надо описать параметры функции и как передавать аргументы в функцию, чтобы получилость то что я хочу? Еще раз хочу заметить, что переменная именно указатель!!!


Сенкс
...
Рейтинг: 0 / 0
16.05.2007, 00:46
    #34527831
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача адреса указателя в функцию
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
#include <stdio.h>

char *a = "aaaa";
char *b = "bbbb";

char *geta() {
     return a;
}

void getb(char **p) {
    *p = b;
}

int main(int argc, char **argv) {
	char *p;

	p = geta();
	printf("%s\n", p);

	getb(&p);
	printf("%s\n", p);
	return  0 ;
}
...
Рейтинг: 0 / 0
16.05.2007, 00:48
    #34527834
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача адреса указателя в функцию
тот самый пишет:
> type *p;
> //далее этой переменной присваивается что то например каой нить функцией
> p=CreateType(...);
// например так :
p = ChangeType( p );
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
16.05.2007, 09:51
    #34528153
Akh
Akh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача адреса указателя в функцию
White Owl
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
#include <stdio.h>

char *a = "aaaa";
char *b = "bbbb";

char *geta() {
     return a;
}

void getb(char **p) {
    *p = b;
}

int main(int argc, char **argv) {
	char *p;

	p = geta();
	printf("%s\n", p);

	getb(&p);
	printf("%s\n", p);
	return  0 ;
}


Настоящие С++-ки пишут: ;)

Код: plaintext
1.
2.
3.
4.
void getb(char *&p) {
    p = b;
}

...
Рейтинг: 0 / 0
16.05.2007, 14:39
    #34529385
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача адреса указателя в функцию
Akh пишет:

> void getb(char **p) {

> Настоящие С++-ки пишут: ;)
>
> void getb(char *&p) {

Сов у нас старый сишнег, ритраград, так сказать...
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
16.05.2007, 14:51
    #34529435
Akh
Akh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача адреса указателя в функцию
MasterZiv
Akh пишет:

> void getb(char **p) {

> Настоящие С++-ки пишут: ;)
>
> void getb(char *&p) {

Сов у нас старый сишнег, ритраград, так сказать...
Posted via ActualForum NNTP Server 1.4

Ну, да а blinded - фанатик. Помню, помню...
...
Рейтинг: 0 / 0
16.05.2007, 17:57
    #34530326
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача адреса указателя в функцию
настоящий с++ник должен будет написать класс Pointer и переопределить у него операторы присваивания и разыменования
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
24.07.2009, 12:46
    #36107514
Charles Weyland
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача адреса указателя в функцию
Ну-ну, а если без использования глобальных переменных?

Немного изменю предлагаемый код.
Исправьте, пожалуйста, в нём ошибки.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
#include <stdio.h>

void changea(char *a) {
     a = new char[ 10 ];
}

int main(int argc, char **argv) {
	char *a;

	changea(a);
	//Теперь a по идее должно указывать на строку длиной 10
	...
}
...
Рейтинг: 0 / 0
24.07.2009, 13:17
    #36107615
Передача адреса указателя в функцию
Charles WeylandНу-ну, а если без использования глобальных переменных?

Немного изменю предлагаемый код.
Исправьте, пожалуйста, в нём ошибки.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
#include <stdio.h>

void changea(char *a) {
     a = new char[ 10 ];
}

int main(int argc, char **argv) {
	char *a;

	changea(a);
	//Теперь a по идее должно указывать на строку длиной 10
	...
}

уже отвечали
void changea(char *&a)
...
Рейтинг: 0 / 0
24.07.2009, 13:39
    #36107678
Charles Weyland
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача адреса указателя в функцию
Не работает)
Привожу текст своего примера. Создаю указатель на двухмерный массив. В отдельной функции выделяю для него память.
Код: plaintext
1.
2.
   int **TableEnd;
   CreateArray2D(TableEnd,  10 ,  15 );
Код: plaintext
1.
2.
3.
4.
5.
6.
void CreateArray2D(int **&array, int Rows,int Cols)
{
   array = new int*[Rows];
   for (int i =  0 ; i < Cols; i++) {
      array[i] = new int[Cols];
   }
}
В этом коде есть ошибка адресации, в следствие чего программа вылетает в произвольном месте программы.
...
Рейтинг: 0 / 0
24.07.2009, 14:09
    #36107754
clihlt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача адреса указателя в функцию
Charles Weyland,

Код: plaintext
1.
 for (int i =  0 ; i < Rows; i++)
...
Рейтинг: 0 / 0
24.07.2009, 14:17
    #36107787
Charles Weyland
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача адреса указателя в функцию
clihltCharles Weyland,

Код: plaintext
1.
 for (int i =  0 ; i < Rows; i++)

действительно...
только в этом проблема? А передал правильно?
...
Рейтинг: 0 / 0
24.07.2009, 15:07
    #36108014
clihlt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача адреса указателя в функцию
Charles Weyland,

Да. Передал правиильно.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
17.06.2017, 07:27
    #39473537
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача адреса указателя в функцию
Двумерных и многомерных массивов в С++ не существует
...
Рейтинг: 0 / 0
17.06.2017, 09:58
    #39473546
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача адреса указателя в функцию
MasterZivДвумерных и многомерных массивов в С++ не существует
настоящие программисты пишут на фортране
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Передача адреса указателя в функцию / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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