C - naplnění pole

Vývojová prostředí, aplikace, skripty, http://www... síťové programy, internet, sdílení...
Odpovědět
Ilhvm
Nováček
Nováček
Registrován: 07. lis 2012

C - naplnění pole

Příspěvek od Ilhvm »

Zdravím,

mám takový menší problém s naplněním pole v C. Mám naplnit pole od dolního po horní index (které nejspíše zadá uživatel) náhodnými čísly typu float. Cyklus jsem sestavila nějak takto:

for(i = dolni; dolni<=horni; i++){
a = rand() % 999;
b = rand() % 999;
pp = (float)a/b;
printf("%0.2f ", pp);
}

Když spustím program, hlásí mi to u řádku pp = (float)a/b; varování Unhandled exception at 0x00413798 in Modul1.exe: 0xC0000005: Access violation writing location 0xcccccccc. Myslím si, že to bude tím, že pole nemá určenou délku. Pokud zadám třeba dolní 5 a horní 7, tak 0-4 není zadán 8+ taky ne, a tak metoda neví, co tam přiřadit, ale nejsem si tím jistá.

Byla bych ráda za jakoukoliv radu.
Děkuji :)
OndraSter
Středně pokročilý
Středně pokročilý
Uživatelský avatar
Registrován: 22. úno 2006
Bydliště: Praha / ČVUT FIT
Kontaktovat uživatele:

Re: C - naplnění pole

Příspěvek od OndraSter »

A zbytek kódu? (do
PC: i5-2500k 4.5GHz/24GB RAM/GTX560 Ti 1GB/>5TB - W7 Prof x64; Microsoft SideWinder X3 notebook: HP 6715b (4GB RAM) - W7 Prof x64;
mobil: Nokia Lumia 800 Cyan, 16GB; tablet: Toshiba Portege M200 (2GB, 64GB SSD, GeForce FX5200) - W7 Prof x32


Nahraďte Arduino výkonnější variantou!
Vývojová prostředí a nástroje | Webové prohlížeče | Seznam freehostingů
Ilhvm
Nováček
Nováček
Registrován: 07. lis 2012

Re: C - naplnění pole

Příspěvek od Ilhvm »

Kód: Vybrat vše

void NaplnPole(float pp[],int dolni, int horni){
	int i, a, b;

	printf("\nZadej dolni index: ");
	scanf("%d", &dolni);
	printf("\nZadej horni index: ");
	scanf("%d", &horni);

	for(i = dolni; dolni<=horni-1; i++){
	a = rand() % 999;
        b = rand() % 999;
        pp[i] = (float)a/b;
        printf("%0.2f  ", pp[i]);
	}
}
V main pak metodu testuji:

Kód: Vybrat vše

int _tmain(int argc, _TCHAR* argv[])
{
	int b, c;
	float *pp;

	NaplnPole(pp, b, c);

	system("PAUSE");
	return 0;
}
OndraSter
Středně pokročilý
Středně pokročilý
Uživatelský avatar
Registrován: 22. úno 2006
Bydliště: Praha / ČVUT FIT
Kontaktovat uživatele:

Re: C - naplnění pole

Příspěvek od OndraSter »

A kde alokuješ místo v paměti pro ten pp?
PC: i5-2500k 4.5GHz/24GB RAM/GTX560 Ti 1GB/>5TB - W7 Prof x64; Microsoft SideWinder X3 notebook: HP 6715b (4GB RAM) - W7 Prof x64;
mobil: Nokia Lumia 800 Cyan, 16GB; tablet: Toshiba Portege M200 (2GB, 64GB SSD, GeForce FX5200) - W7 Prof x32


Nahraďte Arduino výkonnější variantou!
Vývojová prostředí a nástroje | Webové prohlížeče | Seznam freehostingů
Odpovědět

Zpět na „Programování a web“