Anonymní profil Filip – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil Filip – Programujte.comAnonymní profil Filip – Programujte.com

 

Příspěvky odeslané z IP adresy 188.112.123.–

Filip
C / C++ › Dynamické polia C++
6. 7. 2013   #178884

Ono to neni ošetrené. To bolo brané tak, že to bude max jedno slovo o dlžke 9. Ináč by som dal
cin.getline(slovo, 10);
Myslíš strcpy / strncpy ? Ja som to tam robil pre string, čo bolo zle.
Takže by som to dal strcpy(temp[i], slovo);

 

Filip
C / C++ › Dynamické polia C++
6. 7. 2013   #178882

Chcel by som sa ujistiť, či mám dobré myslenie v danej veci

char *temp[] = {"Januar", "Februar", "Marec", "April", "Maj", "Jun", "Jul", "August", "September", "Oktober", "November", "December"};

Tento kód mi vytvorí "12 riadkov v pamäti ". Pre * nemusím alokovať žiadne miesto, pretože každý reťazec má pridelenú adresu v pamäti, takže si to doplní sám.

char *temp[5];
	char slovo[10];

	int i = 0;
	while(i < 5){
		cin >> slovo;
		temp[i] = new char[strlen(slovo) + 1];
		temp[i] = slovo;
		cout << temp[i++] << endl;
	}

Tento kód mi vytvorí v pamäti 5 riadkov a na každý riadok vytvorí smerník, ktoré je potrebné vytvoriť v pamäti miesto podľa zadaného slova.

char slovo[10];
	int i = 0;

	char **temp = new char*[5];
	while(i < 5){
		cin >> slovo;
		temp[i] = new char[strlen(slovo) + 1];
		temp[i] = slovo;
		cout << temp[i++] << endl;
	}

Tento kód mi vytvorí smerník na smerník, kde je treba vytvoriť v pamäti n smerníkov. Následne je ešte potrebné každému smerníku vytvoriť požadované miesto v pamäti.

Chcel by som sa teda spýtať, či mám kódy dobre, či nerobím niekde chybu (aj v uvažovaní). Dík

 

 

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