Dynamicky alokovaná paměť - lze zadat jen 8 znaků – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Dynamicky alokovaná paměť - lze zadat jen 8 znaků – C / C++ – Fórum – Programujte.comDynamicky alokovaná paměť - lze zadat jen 8 znaků – C / C++ – Fórum – Programujte.com

 

Iron0
Duch
27. 9. 2009   #1
-
0
-

Ahoj,

Když spustím tento program, můžu zadat jen 8 znaků (někdy i více, ale to je náhoda). Jak zajistím, abych jich tam mohl mít neomezeně (nebo alespoň víc než 8)? Když chary zaměním za inty, vysledkem je blbost.
Díky moc.

#include <stdio.h>

#include <stdlib.h>

int main (void)
{
char *p_start;
int pocet=0;
char cislice;
int i;
printf("Zadej binarni cislo");
do
{
cislice=getchar();
if(pocet==0)
p_start = (char *) malloc(sizeof(char));
else
p_start = (char *) realloc(p_start, pocet *(sizeof(char)));

*(p_start + pocet) = cislice;
pocet++;


}
while(cislice!='\n');

for(i=0;i<pocet;i++)
{
printf("%c",*(p_start + i));
}

system("PAUSE");

return 0;
}

Nahlásit jako SPAM
IP: 93.91.240.–
Mess with the best, die like the rest.
KIIV
~ Moderátor
+43
God of flame
27. 9. 2009   #2
-
0
-

mas to nejaky divny...
realloc bych pouzival po blocich.. tj alokovat treba blok n*64+1 znaku a z kdyz se to tam nevejde tak teprve pokracovat dal..
precijen presouvat treba 10MB blok pameti po kazdem B by chvili zabralo

Nahlásit jako SPAM
IP: 77.237.136.–
Program vždy dělá to co naprogramujete, ne to co chcete...
sputnikone+1
Věrný člen
27. 9. 2009   #3
-
0
-

osmá číslice je ve výpisu vyměněnna za i - je to opravdu trochu divné :smile11:

Nahlásit jako SPAM
IP: 89.176.157.–
Iron0
Duch
27. 9. 2009   #4
-
0
-

To KIIV - je to domácí úkol, takové je zadání. Jen potřebuji vědět, jak zadat i více čísel než osm.

To sputnikone - mně se vše zobrazuje v pořádku. Nemáš jen špínu na monitoru? .-)

Nahlásit jako SPAM
IP: 93.91.240.–
Mess with the best, die like the rest.
KIIV
~ Moderátor
+43
God of flame
27. 9. 2009   #5
-
0
-

vis cim to je? zvetsujes pocet az po tom co realokujes... tim ti ty data muzou zustat nekde jinde a zapisujes "za" alokovany prostor

EDIT: + proc to jelo do 8cislic -> rika se tomu zarovnani ... (pravdepodobne 64b system)

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

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ý