Vypisování pole naplnene v jine funkci – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Vypisování pole naplnene v jine funkci – C / C++ – Fórum – Programujte.comVypisování pole naplnene v jine funkci – C / C++ – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené — příspěvek s řešením.
Hlavinka0
Návštěvník
5. 12. 2012   #1
-
0
-

Dobrý den,

chtěl bych se zeptat kde bych mohl mit chybu? program je v pohode prelozitelny, ale pri spusteni havaruje v mainu pri vypisovani pole, nevim co s tim delat :-)

#include <iostream>

using namespace std;

void find_primes(int max_prime, int *field_of_primes, int &size_of_the_field);

int main()
{
	int a, b = 0;
	int *field = 0;
	cin >> a;

	find_primes(a, field, b);
	a = 0;

	while(a < b)
		cout << field[a++] << endl;

	delete []field;
	system("pause");
}


void find_primes(int max_prime, int *field_of_primes, int &size_of_the_field)
{
	int a = 2, b = 2, c = 0;
	bool p = false;
	size_of_the_field = 1;
	
	while(a++ < max_prime)
	{
		p = true;
		while(b < a)
			if(a % b++ == 0)
				p = false;
		b = 2;
		if(p)
			size_of_the_field++;
	}
	
	field_of_primes = new int[size_of_the_field];
	a = 2;
	b = 2;
	field_of_primes[0] = 2;
	c = 1;
	while(a++ < max_prime)
	{
		p = true;
		while(b < a)
			if(a % b++ == 0)
				p = false;
		b = 2;
		if(p)
			field_of_primes[c++] = a;
	}
}

děkuji za odpověď

Nahlásit jako SPAM
IP: 188.175.185.–
KIIV
~ Moderátor
+43
God of flame
5. 12. 2012   #2
-
0
-

predas funkci pointer... coz je 0 ... funkce si udela kopii pointeru - tj. jina 0 ... pak prepises jinou nulu alokovanym polem... a pak ten jinej pointer mavnutim proutku zmizne s koncem funkce :)

Nahlásit jako SPAM
IP: 94.112.32.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Hlavinka0
Návštěvník
5. 12. 2012   #3
-
0
-

Jo :-) díky prepsal jsem to na pointer na pointer a funguje to(prvni cislo jo), ale zhavaruje to na tech dalsich: 

void find_primes(int max_prime, int **pointer_to_pointer_of_field, int &size_of_the_field)
{
	int a = 2, b = 2, c = 0;
	bool p = false;
	size_of_the_field = 1;
	
	while(a++ < max_prime)
	{
		p = true;
		while(b < a)
			if(a % b++ == 0)
				p = false;
		b = 2;
		if(p)
			size_of_the_field++;
	}
	
	*pointer_to_pointer_of_field = new int[size_of_the_field];

	a = 2;
	b = 2;
	*pointer_to_pointer_of_field[0] = 2;
	c = 1;
	while(a++ < max_prime)
	{
		p = true;
		while(b < a)
			if(a % b++ == 0)
				p = false;
		b = 2;
		if(p)
			*pointer_to_pointer_of_field[c++] = a;
	}
}
Nahlásit jako SPAM
IP: 188.175.185.–
Řešení
KIIV
~ Moderátor
+43
God of flame
5. 12. 2012   #4
-
0
-
Vyřešeno Nejlepší odpověď

pro jistotu bych nahodil priority ... (*pointer_blabla)[index]

Nahlásit jako SPAM
IP: 94.112.32.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Hlavinka0
Návštěvník
5. 12. 2012   #5
-
0
-

jo super :-) díky moc s těmi prioritami je to taková blbá drobnost, ale to už k programování asi patří že? ;-)

Nahlásit jako SPAM
IP: 188.175.185.–
KIIV
~ Moderátor
+43
God of flame
5. 12. 2012   #6
-
0
-

#5 Hlavinka
no jak mi neco nefunguje jak ma, tak zacinam tim... a casto je davam rovnou preventivne.. se nekdy blbe hleda ve vetsim kodu

Nahlásit jako SPAM
IP: 94.112.32.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 131 hostů

Podobná vlákna

Pole ve funkci — založil Kenvelo

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý