Algoritmy v jazyku C a C++ – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Algoritmy v jazyku C a C++ – C / C++ – Fórum – Programujte.comAlgoritmy v jazyku C a C++ – C / C++ – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené.
4. 1. 2015   #1
-
0
-

Zdravim
Povedal som si ze si prejdem tuto knihu a nieco sa priucim.
Hned na zaciatku som narazil na problem s kompatibilitou.
Pouzivam GCC kompilator na linuxe a ked chcem vlozit premennu do funkcie ako pointer na 2d pole podla knihy vyhadzuje mi chybu.
Problem je v definicii

void Preklop(float *m, int n)

a potom volanie s 2d polom.

main.c:19:2: warning: passing argument 1 of 'Preklop' from incompatible pointer type [enabled by default]  Preklop(a,pocet);                                                                          
main.c:3:6: note: expected 'float *' but argument is of type 'float (*)[3]'

Kod:

#include <stdio.h>

void Preklop(float *m, int n)
/* preklopeni ctvercove matice n x n podle hlavni diagonaly */
{
	int i,j;
	float pom;
	for(i=0;i<n-1;i++)
		for(j=i+1;j<n;j++)
		{
			pom=m[i*n+j]; m[i*n+j]=m[j*n+i]; m[j*n+i]=pom;
		}
}

void main()
{
	float a[3][3];
	int pocet = 3;
	Preklop(a,pocet);
	
	return 0;
}

Vsade som sa stretol s definiciou podla prekladaca a preto by ma zaujimalo ako to ze kod podla knihy funguje s Dev C++ alebo Visual C++.

Viete mi nejako objasnit ten rozdiel?
Dakujem ;)

Nahlásit jako SPAM
IP: 62.44.135.–
KIIV
~ Moderátor
+43
God of flame
4. 1. 2015   #2
-
0
-

#1 embedded_
novejsi kompilatory vic hlidaj takovyhle potencialni nesmysly

float pole[10] odpovida float *pole...

Dvojrozmerne pole je uz neco jineho..  je totiz hodne velkej rozdil mezi  float pole[3][3] a  float **pole

Mimo to je to jen warning - zkompilovat by se to melo.

Nahlásit jako SPAM
IP: 94.113.95.–
Program vždy dělá to co naprogramujete, ne to co chcete...
embedded_
~ Anonymní uživatel
2 příspěvky
4. 1. 2015   #3
-
0
-

Jo skompilovalo len ma zaujimalo preco to tak implemenoval a na to ze je to priklad v knihe by som ocakaval korektny kod.

Zasláno z mobilního telefonu.

Nahlásit jako SPAM
IP: 62.44.134.–
KIIV
~ Moderátor
+43
God of flame
4. 1. 2015   #4
-
0
-

aby to byl jakz takz korektni kod, tak budes muset predat   pole[0]   nebo  &pole[0][0], aby to bylo float *  (samozrejme to musi byt vse v pameti za sebou, coz  float pole[3][3] jeste splnuje)

Nahlásit jako SPAM
IP: 94.113.95.–
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, 8 hostů

Podobná vlákna

Algoritmy.... — založil jurec

2D triediace algoritmy — založil nord

Kniha algoritmy — založil Qwerty

Delphi algoritmy — založil Hanka

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ý