Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.94/18: Рейтинг темы: голосов - 18, средняя оценка - 4.94
 Аватар для Charley
5 / 5 / 2
Регистрация: 11.06.2012
Сообщений: 192

Функция возвращает ссылку на статический массив

28.10.2013, 23:52. Показов 3702. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Мне необходимо чтобы массив pol и mas были обязательно статическими, но постоянно выдает ошибку. Как исправить?
C++
1
2
3
4
5
6
7
8
9
10
11
12
int* func()
{
    int mas[10];
    return mas;
}
 
int _tmain(int argc, _TCHAR* argv[])
{
    int pol[10];
    pol=func();
 return 0;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.10.2013, 23:52
Ответы с готовыми решениями:

Функция возвращает двумерный статический массив своего класса
Есть класс whirlpool: class whirlpool { public: int *buffer; int len; whirlpool(int length)

Функция возвращает ссылку
Вот пример программы какой смысл здесь возвращать ссылку? И вообще не могу понять где нужно использовать возвращение значения по ссылке? И...

Функция возвращает константную ссылку
Можно ли в таком случае возвращать константную ссылку? Не будет никакой опасности? Ведь в функции вроде создается временный объект double...

6
Модератор
Эксперт по электронике
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,870
28.10.2013, 23:55
Цитата Сообщение от Charley Посмотреть сообщение
Мне необходимо чтобы массив pol и mas были обязательно статическими,
Цитата Сообщение от Charley Посмотреть сообщение
int mas[10];
Цитата Сообщение от Charley Посмотреть сообщение
int pol[10];
может добавить слово static

Добавлено через 50 секунд
Цитата Сообщение от Charley Посмотреть сообщение
но постоянно выдает ошибку.
какую?
1
zzzZZZ...
 Аватар для dzrkot
527 / 358 / 94
Регистрация: 11.09.2013
Сообщений: 2,041
28.10.2013, 23:58
ты создаешь массив в функции, он имеет локальную область действия, т.е. по завершении функции память, выделенная под массив освобождается, а ты пытаешься её вернуть.

Цитата Сообщение от Charley Посмотреть сообщение
pol=func();
такого ещё не встречал)

создай функцию, которая принимает массив, и возвращает указатель на него тогда уж...

в чём задача вообще?
пс. если ты хочешь присвоить массив, то это надо поэлементно делать
0
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9006 / 4707 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
29.10.2013, 00:07
Charley, можно static в функции объявить, можно как внешний:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <iostream>
#include <windows.h>
using namespace std;
const int ar_sz=10;
int *foo();
int &foo(int i);
int main()
{
SetConsoleCP (1251); SetConsoleOutputCP (1251);
for(int i=0; i< ar_sz; ++i) foo(i) = i*i;
for(int i=0; i< ar_sz; ++i) cout << foo(i)<<" ";
//или
int *ptr_to_ar=foo();
for(int i=0; i< ar_sz; ++i) ptr_to_ar[i] = i*i;//
for(int i=0; i< ar_sz; ++i) cout << foo(i)<<" ";
cout << endl;
system ("pause" );
    return 0;
}
//это может быть в отд файле)
int static_arr[ar_sz];
 
int &foo(int i){
return static_arr[i];
}
 
int *foo(){
return static_arr;
}
Важно чтобы ей было видно этот массив. А зачем это нужно?
0
 Аватар для Charley
5 / 5 / 2
Регистрация: 11.06.2012
Сообщений: 192
29.10.2013, 12:34  [ТС]
dzrkot, я не знаю как сделать так: whirlpool *temp = new whirlpool[10], где whirlpool мой клас
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
29.10.2013, 12:36
Можете обернуть 10 объектов внутрь другого класса или структуры. Или же воспользоваться контейнерами STL.
А лучше передавать массив в качестве аргумента и вести с ним работу внутри функции
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
29.10.2013, 14:09
Цитата Сообщение от Charley Посмотреть сообщение
я не знаю как сделать так: whirlpool *temp = new whirlpool[10], где whirlpool мой клас
никаких проблем, если есть конструктор по умолчанию.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.10.2013, 14:09
Помогаю со студенческими работами здесь

Функция возвращает не ссылку а само значение переменной на которое оно ссылается
Скажите пожалуйста есть функция `int&amp; my(){return a} которая возвращает ссылку если возвращаемое функцией значение присвоить переменной...

Нужно создать статический массив строк как статический массив указателей на строки. Условние ниже -->
Слова английского текста рассортировать по возрастанию количества заданной буквы в слове. Слова с одинаковым количеством такой буквы...

создать статический массив строк как статический массив указателей на строки, задание ниже -->
Слова английского текста, начинающиеся с гласных букв, рассортировать в алфавитном порядке по первой согласной букве слова. Остальные слова...

Функция которая принимает целочисленный массив и возвращает 1 если это центрированный массив
Здравствуйте! Помогите пожалуйста решить задание.Работаю в среде MS visual studio .Раньше не передавала в качестве параметра массив. ...

Функция не возвращает массив?
Всем привет. Условно у меня есть 2 функции внутри класса: public function BuildConfig($ID) { $result =...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru