powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Двойной указатель
6 сообщений из 6, страница 1 из 1
Двойной указатель
    #32830231
UlanOf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите почему массив не выводиться .....
#include <stdio.h>
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
void Cozdanie_mas(int **mas,int n,int m);

void main()
{
int **mas,n,m;
Cozdanie_mas(mas,n,m);
for (int i=0;i<n;i++)
for (int j=0;j<m;j++)
cout<<mas [j]<<endl;
cout<<"ypa";
}

void Cozdanie_mas(int **mas, int n, int m)
{
cout<<"Enter the size of a array\n";
cin>>n;
cout<<endl<<"Enter the size of a array\n";
cin>>m;
cout<<"\n";
mas=new int *[n];
for (int i=0;i<n;i++)
mas=new int [m];
cout<<"Enter elements of a array\n";
for (i=0;i<n;i++)
for (int j=0;j<m;j++)
cin>> mas[j];

}
...
Рейтинг: 0 / 0
Двойной указатель
    #32830325
Фотография Анатолий Широков
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы присваиваете адрес локальной переменной mas, который по выходу из Cozdanie_mas теряется - происходит утечка памяти. Чтобы работало то, что Вы задумали измените сигнатуру функции следующим образом:

Код: plaintext
void Cozdanie_mas(int**&mas,int n,int m);
...
Рейтинг: 0 / 0
Двойной указатель
    #32830327
dwl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
dwl
Гость
1) у тебя ошибка в обращении к элементу массива
2) ошибка в передаче параметров - n и m передаются по значению, а надо по ссылке
3) не освобождаешь выделенную память

Код: plaintext
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.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
#include <stdio.h>
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>

#include "stdafx.h"

using std::cin;
using std::cout;

void Cozdanie_mas(int *mas, int& n, int& m)
{
	cout << "Enter the size of a array\n";
	cin  >> n;
	cout << std::endl << "Enter the size of a array\n";
	cin  >> m;
	cout << "\n";

	mas = new int [n*m];

	cout << "Enter elements of a array\n";
	for (int i= 0 ;i<n;i++)
		for (int j= 0 ;j<m;j++)
			cin >> mas[i*m + j];

}

int _tmain(int argc, _TCHAR* argv[])
{
	int *mas,n,m;

	Cozdanie_mas(mas,n,m);

	for (int i= 0 ;i<n;i++)
		for (int j= 0 ;j<m;j++)
			cout<<mas[i*m + j]<<std::endl;

	cout<<"ypa";

	delete [] mas;
	return  0 ;
}
...
Рейтинг: 0 / 0
Двойной указатель
    #32830334
dwl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
dwl
Гость
ну и ссылку перед указателем как было в предыдущей мессаге, а еще лучше сделать функцию. А еще лучше перейти на контейнер.
...
Рейтинг: 0 / 0
Двойной указатель
    #32830355
dwl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
dwl
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
int* Cozdanie_mas(int& n, int& m)
{
...
	int *mas = new int [n*m];
...
	return mas;
}

int _tmain(int argc, _TCHAR* argv[])
{
	int *mas,n,m;

	mas = Cozdanie_mas(n,m);
...
	delete [] mas;
	return  0 ;
}
...
Рейтинг: 0 / 0
Двойной указатель
    #32830401
UlanOf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем спасибо за внимание .... Я тупил передавая по ссылке значение функции ... просто & ставил не туда .... в течении часа .)) Бывает со всеми))
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Двойной указатель
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]