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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.11.2011, 15:17   #1
pinkiller
Форумчанин
 
Регистрация: 29.10.2011
Сообщений: 141
По умолчанию проблемы с работой с динамическими массивами

Код:
#include <iostream>
#include <stdio.h>
using namespace std;
int ChangeArray(char** array, int f){
  int d=f; 
  f=f+f;
  char* newArray = new char[f];
  //Унарная * - оператор разыменования указателя, "вытащить то, адрес чего хранится в переменной"
  for (int i=0; i<=d; i++) {newArray[i]=(*array)[i];}
  //delete[] (*Array);
  *array=newArray;
  return f;
}

char qwe (char original[], int z, int &m) {
	m=ChangeArray(&original, z);
	int y=z;
    for (;y<m; y++) {original[y]='A'+y;}
	return *original;
}

void main(){
  int z=2;
  int g=0;
  char* original = new char[z];
  for (int i=0; i<=z; i++) {original[i]='A'+i;}
  for (int n=0; n<=1; n++){*original=qwe(original, z, g);
  z=g;}
cout<<z<<'\n';
for (int i=0; i<=z; i++)  {cout<<original[i]<<' ';}
}


Собственно передаю массив в функцию qwe оттуда в ChangeArray обратно в мейн массив не возвращается.
Проверяю это тем что в функции qwe дописываю заглавные английские буквы.

Вот такое невозвращение блудного массива.

С чем это связано?
pinkiller вне форума Ответить с цитированием
Старый 09.11.2011, 15:44   #2
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

обратно в мейн массив не возвращается

массив вернуть нельзя.
только указатель на массив или ссылку на массив. да и то, это возможно только в случае статического массива.
Rififi вне форума Ответить с цитированием
Старый 09.11.2011, 18:50   #3
pinkiller
Форумчанин
 
Регистрация: 29.10.2011
Сообщений: 141
По умолчанию

Тогда ссылка не возвращаеться
pinkiller вне форума Ответить с цитированием
Старый 09.11.2011, 19:09   #4
Mandrivnyk
Software Developer
Участник клуба
 
Аватар для Mandrivnyk
 
Регистрация: 01.03.2011
Сообщений: 1,098
По умолчанию

Цитата:
Сообщение от pinkiller Посмотреть сообщение
Тогда ссылка не возвращаеться
Так для этого надо ссылку передавать, и возвращать тогда ничего не надо.
В функции произойдет обработка массива, ссылку на который ты передашь.

А вообще -- можно ли услышать, что именно должна делать программа?
Болтовня ничего не стоит. Покажите мне код. (c) Linus Torvalds
Помог ответ? -- Поставьте отзыв.
Выражения особой благодарности в рублевом эквиваленте отправлять сюда --> R269634919062
Mandrivnyk вне форума Ответить с цитированием
Старый 09.11.2011, 20:10   #5
pinkiller
Форумчанин
 
Регистрация: 29.10.2011
Сообщений: 141
По умолчанию

Код:
#include <iostream>
#include <stdio.h>
using namespace std;
int ChangeArray(char** array, int f){
  int d=f; 
  f=f+f;
  char* newArray = new char[f];
  //Унарная * - оператор разыменования указателя, "вытащить то, адрес чего хранится в переменной"
  for (int i=0; i<=d; i++) {newArray[i]=(*array)[i];}
  //delete[] (*Array);
  *array=newArray;
  return f;
}

char *qwe (char original[], int z, int &m) {
	m=ChangeArray(&original, z);
	int y=z;
    for (;y<=m; y++) {original[y]='A'+y;}
	return original;
}

void main(){
  int z=2;
  int g=0;
  char* original = new char[z];
  for (int i=0; i<=z; i++) {original[i]='A'+i;}
  for (int n=0; n<=1; n++){original=qwe(original, z, g);
  z=g;}
cout<<z<<'\n';
for (int i=0; i<=z; i++)  {cout<<original[i]<<' ';}
}

Вот рабочий код. может кому то когда то понадобиться и он случайно сюда заглянет.


Программа должна была в мейне создавать динамический массив, в другой функции1 вызывать функцию2 увеличивать массив, дописывать в функции1 в него символы и возвращать в мейн.
pinkiller вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка при работе с динамическими массивами GBAXA Общие вопросы Delphi 16 30.03.2011 09:28
Проблема с динамическими массивами San4o Общие вопросы Delphi 5 13.09.2009 21:15
Задача с динамическими массивами _grusha_ Помощь студентам 2 22.04.2009 19:46
Проблема с динамическими массивами Arassir Помощь студентам 2 11.11.2008 00:15