Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.06.2008, 14:11   #1
Игорь007
Пользователь Подтвердите свой е-майл
 
Аватар для Игорь007
 
Регистрация: 30.05.2008
Сообщений: 96
По умолчанию Передача данных в функцию по указателю

Всем Привет!
Код:
struct Str
{
	char word[256];
	int kol;
	struct Str *l;
	struct Str *r;
};

void Function(Str *str)
{
	str = (Str*)calloc(1, sizeof(Str));
}

int main()
{
	FILE *file;
	Str *strPtr = 0;
	char word[256] = "";
	file = fopen("qwer.txt", "rt");
	while(fscanf(file, "%s", word) != EOF)
	{
		Function(strPtr);
	}
	fclose(file);
	system("PAUSE");
	return 0;
}
Вопрос: почему после выполнения Function указатель strPtr так и остаеться нулевым? (Отладчиком смотрел - в функции переменная strPtr принимает не нулевое значение. Как только происходит выход из функции, переменная опять зануляеться)

Последний раз редактировалось Игорь007; 23.06.2008 в 14:37.
Игорь007 вне форума Ответить с цитированием
Старый 23.06.2008, 20:04   #2
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

Цитата:
Сообщение от Игорь007 Посмотреть сообщение
Вопрос: почему после выполнения Function указатель strPtr так и остаеться нулевым? (Отладчиком смотрел - в функции переменная strPtr принимает не нулевое значение. Как только происходит выход из функции, переменная опять зануляеться)
Ну как это почему. Потому, что это - локальная переменная. Мало ли что с ней в функции происходит....

Код:
void Function(Str **str)
{
	*str = (Str*)calloc(1, sizeof(Str));
}

int main()
{
	Str *strPtr = 0;
//........................
		Function(&strPtr);
//........................
}
B_N вне форума Ответить с цитированием
Старый 23.06.2008, 20:17   #3
Игорь007
Пользователь Подтвердите свой е-майл
 
Аватар для Игорь007
 
Регистрация: 30.05.2008
Сообщений: 96
По умолчанию

Понял. Спасибо. Я просто думал если уж указатель в функцию передал, так он по любому будет изменяться при выходе.
Игорь007 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
передача указателя в функцию arturka Помощь студентам 3 06.07.2008 00:25
Чат, передача данных Патрон Общие вопросы Delphi 1 24.06.2008 09:15
Передача данных Ivanich JavaScript, Ajax 1 29.04.2008 00:25
Передача компонента как параметра в функцию hayhay Microsoft Office Excel 1 11.03.2008 15:53
как вызвать в Dll по указателю функцию, которая определена в главном потоке? SaintRain Общие вопросы Delphi 1 25.11.2006 08:27