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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.02.2012, 19:42   #1
lowercase
Пользователь
 
Регистрация: 15.05.2010
Сообщений: 88
По умолчанию запутался с указателями на масивы в функциях с++

здраствуйте. программа на С++. принцып работы довольно простой. создание и вывод маисва. но с небольшой июзюминкой. масив возвращается отдельно фукцией. то есть масив создается в функции и сразу заполняется и возвращается. размер масива известен заранее. вторая функция соответственно вывод масива на экран.
Код:
#include <stdio.h>
double new_xk(int n);
void show_xk(double m[],int n);

int main(){
  int k = 0;scanf("%d",k);
  double xk = new_xk(k);
  show_xk(xk,k);
  getchar();
  return 0;
}

double new_xk(int n){
	double* xk = new double[n];
  for(int i = 0; i<n;i++){
  	double c;
  	scanf("%lf",&c);
        xk[i] = c;
  }
  return *xk;
}

void show_xk(double m[],int n){
	for (int i = 0; i < n; i++)
  	printf("%lf",m[i]);
}
вот сижу уже пол часа пытаюсь раобратся где и как правильно использовать указатели но чтото запутался
компилятор выдает следущие ошибки:

Error: noname00.cpp(8,16):Incompatible type conversion

если можно, объясните пожалуйста как правильно вернуть массив функцией и передать в другую функцию.
ps: а так можно заменить?:
Код:
  for(int i = 0; i<n;i++){
  	double c;
  	scanf("%lf",&c);
        xk[i] = c;
  }
на
Код:
  for(int i = 0; i<n;i++)
  	scanf("%lf",&xk[i]);

Последний раз редактировалось lowercase; 08.02.2012 в 19:56.
lowercase вне форума Ответить с цитированием
Старый 08.02.2012, 20:43   #2
_kilik_
Пользователь
 
Аватар для _kilik_
 
Регистрация: 16.08.2011
Сообщений: 69
По умолчанию

Код:
#include <stdio.h>
#include<iostream>
double *new_xk(int n);
void show_xk(double *m,int n);
void free(double *m);

int main(){
  int k = 0;
  scanf("%d",&k);
  double *xk = new_xk(k);
  show_xk(xk,k);

  std::system("pause");
  getchar();
  return 0;
}

double *new_xk(int n){
double* xk = new double[n];
  for(int i = 0; i<n;i++){
  	float c;
  	scanf("%lf",&c);
        xk[i] = c;
  }
  return xk;
}

void show_xk(double m[],int n){
	for (int i = 0; i < n; i++)
  	printf("%lf",m[i]);
}
void free(double *m){
	delete []m;
}
_kilik_ вне форума Ответить с цитированием
Старый 08.02.2012, 21:00   #3
lowercase
Пользователь
 
Регистрация: 15.05.2010
Сообщений: 88
По умолчанию

спасибо большое!
lowercase вне форума Ответить с цитированием
Старый 08.02.2012, 21:03   #4
lowercase
Пользователь
 
Регистрация: 15.05.2010
Сообщений: 88
По умолчанию

только вот один момент:
Код:
double *new_xk(int n){
double* xk = new double[n];
//...
есть разница где звездочка будет стоять? или результат будет тот же во всех случаях?:

Код:
double * new_xk(int n){
double * xk = new double[n];
//...
double* new_xk(int n){
double *xk = new double[n];
//...
lowercase вне форума Ответить с цитированием
Старый 08.02.2012, 21:08   #5
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Нет разницы, но помните, что здесь
Код:
int* a, b, c;
указатель только один — а.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 08.02.2012, 21:11   #6
lowercase
Пользователь
 
Регистрация: 15.05.2010
Сообщений: 88
По умолчанию

спасибо. буду иметь ввиду.
lowercase вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
параметры в функциях си the_deer_one Общие вопросы C/C++ 6 09.03.2011 14:17
Не разбираюсь в функциях logok Общие вопросы C/C++ 5 03.04.2010 00:30
Помощь в классах и функциях. Serror Общие вопросы C/C++ 11 10.10.2009 06:23
Указатели и переменные в функциях. Alexcomeback Общие вопросы C/C++ 6 28.09.2009 20:11
Форматирование текста в функциях. shadrikoff Microsoft Office Excel 5 26.02.2009 08:13