powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Передача адреса указателя в функцию
15 сообщений из 15, страница 1 из 1
Передача адреса указателя в функцию
    #34527817
тот самый
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет всем!

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

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

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

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


Сенкс
...
Рейтинг: 0 / 0
Передача адреса указателя в функцию
    #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
Передача адреса указателя в функцию
    #34527834
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тот самый пишет:
> type *p;
> //далее этой переменной присваивается что то например каой нить функцией
> p=CreateType(...);
// например так :
p = ChangeType( p );
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Передача адреса указателя в функцию
    #34528153
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
Передача адреса указателя в функцию
    #34529385
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akh пишет:

> void getb(char **p) {

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

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

> void getb(char **p) {

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

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

Ну, да а blinded - фанатик. Помню, помню...
...
Рейтинг: 0 / 0
Передача адреса указателя в функцию
    #34530326
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
настоящий с++ник должен будет написать класс Pointer и переопределить у него операторы присваивания и разыменования
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Передача адреса указателя в функцию
    #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
Передача адреса указателя в функцию
    #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
Передача адреса указателя в функцию
    #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
Передача адреса указателя в функцию
    #36107754
clihlt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Charles Weyland,

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

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

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

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


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