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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.10.2010, 19:42   #1
ForzaJuve
Пользователь
 
Регистрация: 27.09.2008
Сообщений: 38
По умолчанию Параметры ф-ции

Здравствуйте, подскажите пожалуйста:
Имеется прототип ф-ции, к примеру: double* txt2double(char *string , int *size)
в качестве переменной int *size я передаю заданной ф-ции переменную id.

Какое выражение мне следует записать в теле ф-ции, чтобы к значению size добавить 1, тоесть size:=size+1; (как в паскале), и чтобы потом мое значение size (внутри ф-ции) вернулось в id (начальную переменную которую я передавал ф-ции)?

Заранее благодарен.
ForzaJuve вне форума Ответить с цитированием
Старый 13.10.2010, 19:45   #2
_ILYA_
Пользователь
 
Аватар для _ILYA_
 
Регистрация: 12.10.2010
Сообщений: 79
По умолчанию

Ты походу хочешь организовать счетчик вызова функции?
Код HTML:
double* txt2double(char *string , int *size) {
	*size++;
	// остальной код
}
Имею хитрый план по личному обогащению

Последний раз редактировалось _ILYA_; 13.10.2010 в 19:50.
_ILYA_ вне форума Ответить с цитированием
Старый 13.10.2010, 19:49   #3
ForzaJuve
Пользователь
 
Регистрация: 27.09.2008
Сообщений: 38
По умолчанию

нет, у меня просто внутри ф-ции есть переменная k которую мне нужно присвоить size, чтобы потом получить ее значение "наружу" в id
ForzaJuve вне форума Ответить с цитированием
Старый 13.10.2010, 20:04   #4
_ILYA_
Пользователь
 
Аватар для _ILYA_
 
Регистрация: 12.10.2010
Сообщений: 79
По умолчанию

Код HTML:
double* txt2double(char *string , int *size) {
	*size = k;
	// остальной код
}
почему нельзя вернуть значение по нормальному?
или просто увеличить глобальную переменную (хотя так делать не стоит)
Имею хитрый план по личному обогащению
_ILYA_ вне форума Ответить с цитированием
Старый 13.10.2010, 20:15   #5
Chris D
Пользователь
 
Регистрация: 14.01.2010
Сообщений: 31
По умолчанию

Код:
#include "stdafx.h"
#include <iostream>

using namespace std;

double txt2double(int *size) {
	return *size = 10;
}
double txt2double(int &size) {
	return size = 10;
}
int _tmain(int argc, _TCHAR* argv[])
{
	int sData = 5;

	cout << txt2double(&sData) << " " << sData << endl;
	cout << txt2double(sData) << " " << sData << endl;

	system("PAUSE");
	return 0;
}
Вариант номер один.
Меняет знаение size только внутри функции... Исходное значение не меняется.
Вариант номер два.
Меняет исходное значение, так как передача происходит по ссылке...

Писал в блокноте, проше прощения за возможно неграматный синтаксис...
Chris D вне форума Ответить с цитированием
Старый 13.10.2010, 20:16   #6
ForzaJuve
Пользователь
 
Регистрация: 27.09.2008
Сообщений: 38
По умолчанию

не работает выбивает ошибку(без данного обращения все ок):
http://s002.radikal.ru/i197/1010/66/22e13f8bcb5d.jpg
ForzaJuve вне форума Ответить с цитированием
Старый 13.10.2010, 20:20   #7
ForzaJuve
Пользователь
 
Регистрация: 27.09.2008
Сообщений: 38
По умолчанию

Вот полный код:
Код:
double* txt2double(char *string , int *size){
double *ar;
int k,i,j,length;
char tmp[255];

memset(tmp, 0, sizeof(tmp));
ar=calloc(size,sizeof(double));
i=0;
j=0;
k=0;

length=strlen(string);
printf("%d\n",length);


while(i!=strlen(string)){


	if(string[i]!=';'){
		tmp[j]=string[i];
		j++;
		i++;
		printf("%s\n",tmp);
	}

	if(string[i]==';'){
		tmp[j+1]='\0';
		ar[k]=atof(tmp);
		printf("%f\n",ar[k]);

		memset(tmp, 0, sizeof(tmp));
	    printf("%s\n",tmp);
		k++;
		j=0;
		i++;
	}	
}
getche();
return ar;
free(ar);
}
не понимаю что нужно добавиться чтобы возвращало значение наружу из size
ForzaJuve вне форума Ответить с цитированием
Старый 13.10.2010, 20:38   #8
_ILYA_
Пользователь
 
Аватар для _ILYA_
 
Регистрация: 12.10.2010
Сообщений: 79
По умолчанию

может я чтото пропустил но я невижу чтобы ты задействовал size djj,ot
Имею хитрый план по личному обогащению
_ILYA_ вне форума Ответить с цитированием
Старый 13.10.2010, 20:39   #9
ForzaJuve
Пользователь
 
Регистрация: 27.09.2008
Сообщений: 38
По умолчанию

Код:
ar=calloc(size,sizeof(double));
ForzaJuve вне форума Ответить с цитированием
Старый 13.10.2010, 22:59   #10
_ILYA_
Пользователь
 
Аватар для _ILYA_
 
Регистрация: 12.10.2010
Сообщений: 79
По умолчанию

Код:
ar=calloc(size,sizeof(double));
(*size)++
Имею хитрый план по личному обогащению
_ILYA_ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как передать в поток параметры? И как из потока параметры достать? Anekdot Общие вопросы Delphi 2 19.02.2010 22:40
наследование. виртуальные ф-ции, помогите с дв-ем HoOpe Помощь студентам 0 16.06.2009 01:27
ф-ции и процедурыю работа с текстом katya36 Помощь студентам 8 13.04.2009 10:19