[ Príspevkov: 5 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 08.12.12
Prihlásený: 14.05.19
Príspevky: 26
Témy: 8 | 8

Proím vás o radu neviem co stým vypisuje mi tam chybu a už som fakt zo silami na dne .. pomožte prosím Vás.
Kód:
#include<stdio.h>

int pocet_slov(FILE* text)
{
int pocitadlo=0;
int z;
while(fscanf(text,"%d",&z)==1)
{
pocitadlo=pocitadlo +1;
}malloc();

return pocitadlo;
}

int* alokuj_rozmerne_pole(int pocet_slov )
{
int pole1;
pole1=(char*) malloc(pocet_slov );
return 0;
}

void load(FILE* text,int velkost_pola)
{
int i=0,z,pole1;
while(fscanf(text,"%d",&z)==1)
{
pole1[i]=z;                //chyba 
i= i+1;

if(i<=(velkost_pola-1))
{fclose(text);
   return 0;}
printf("%d ",pole1[1]);     //chyba 
}
fclose(text);
}

void main()
{
FILE *text;
int pocet;
text = fopen("text.txt", "r");
pocet=pocet_slov(text);
printf("Pocet cisel v text.txt : %d \n",pocet);
alokuj_rozmerne_pole(pocet);
load(text,pocet);
}


Malo by to zistiť počet čísel v súbore a potom alokovať pole a nakoniec ich zapísať do pola .

dakujem vopred


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 29.12.20
Príspevky: 1516
Témy: 3 | 3

Nemám teraz síl, tak som len označil chyby komentárom (a trochu ten kód sformátoval, lebo tvoj je nečiteľný)
Pointa je v tom, že si alokuješ pole, ale ukazateľ naň kľudne stratíš. Z funkcie si ho musíš vrátiť a funkcií load ho zase poslať ako parameter.
Kód:
#include<stdio.h>

int pocet_slov(FILE* text)
{
    int pocitadlo=0;
    int z;
    while(fscanf(text,"%d",&z)==1)
    {
        pocitadlo=pocitadlo +1;
    }
    malloc(); // wtf is this shit? Zmazat.

    return pocitadlo;
}

int* alokuj_rozmerne_pole(int pocet_slov )
{
    int pole1; // int * pole1;
    pole1=(char*) malloc(pocet_slov );
    return 0; // vraciam pointer, takze return pole1;
}

void load(FILE* text,int velkost_pola)
{
    int i=0,z,pole1;
    while(fscanf(text,"%d",&z)==1)
    {
        pole1[i]=z;                //chyba - no tak urcite, ked pole1 je cislo a nie pole
        i= i+1;

        if(i<=(velkost_pola-1))
        {
            fclose(text);
            return 0;
        }
        printf("%d ",pole1[1]);     //chyba - detto
    }
    fclose(text);
}

void main() // ziadny void, main vracia vzdy int! Nezabudnut na konci return 0;
{
    FILE *text;
    int pocet;

    text = fopen("text.txt", "r");
    pocet=pocet_slov(text);
    printf("Pocet cisel v text.txt : %d \n",pocet);

    alokuj_rozmerne_pole(pocet); // kde si ulozim pointer na alokovane pole? No nikde.
    load(text,pocet); // kde vezme funkcia load alokovane pole? No nikde.
}


_________________
Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám!
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 08.12.12
Prihlásený: 14.05.19
Príspevky: 26
Témy: 8 | 8
Napísal autor témyOffline : 08.12.2012 16:49 | error C2109: subscript requires array or pointer type

dakujem pozrem sa na to ... :)


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 08.12.12
Prihlásený: 14.05.19
Príspevky: 26
Témy: 8 | 8
Napísal autor témyOffline : 09.12.2012 14:36 | error C2109: subscript requires array or pointer type

ako si uložim pointer na alokovane pole?


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 29.12.20
Príspevky: 1516
Témy: 3 | 3

Vrátiš si ho z funkcie normálne cez return


_________________
Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám!
 [ Príspevkov: 5 ] 


error C2109: subscript requires array or pointer type



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

EngineXT requires at least VertexShared 3.0 to run

v Hry a herné konzoly

3

734

21.02.2010 15:05

ac.milan

V tomto fóre nie sú ďalšie neprečítané témy.

inteligent pointer

v Backend

4

558

25.10.2008 11:05

johny3212

V tomto fóre nie sú ďalšie neprečítané témy.

Pointer v C

v Backend

2

530

09.05.2011 10:05

the_pivo

V tomto fóre nie sú ďalšie neprečítané témy.

Delphi: Pointer, hodnota

v Ostatné

1

1252

22.12.2008 22:49

programator

V tomto fóre nie sú ďalšie neprečítané témy.

Pointer cursor aj mimo textu

v Frontend

2

416

21.04.2012 14:28

Bokos

V tomto fóre nie sú ďalšie neprečítané témy.

[C] pointer na pole vo vedlajsej funkcii

v Backend

25

1020

14.11.2016 12:41

Miso122

V tomto fóre nie sú ďalšie neprečítané témy.

Parse error: syntax error, unexpected '}' in /usr/export/www

v CMS

9

780

11.01.2007 18:32

then

V tomto fóre nie sú ďalšie neprečítané témy.

Parse error: syntax error, unexpected T_STRING in ..

v Backend

7

1167

08.08.2007 8:03

Tominator

V tomto fóre nie sú ďalšie neprečítané témy.

Parse error: syntax error, unexpected '"' in

v Backend

1

678

10.12.2009 15:40

stenley

V tomto fóre nie sú ďalšie neprečítané témy.

SATA DVD vypalovačka (error DMA, error CRC)

v Ostatné úložné zariadenia

2

1106

13.11.2007 21:11

Mulan3

V tomto fóre nie sú ďalšie neprečítané témy.

Parse error: syntax error, unexpected $end

v Backend

6

1087

29.08.2011 22:26

BX

V tomto fóre nie sú ďalšie neprečítané témy.

Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_ST

v Backend

1

701

05.10.2010 12:08

walther

V tomto fóre nie sú ďalšie neprečítané témy.

Book Type

v Ostatné úložné zariadenia

1

1454

21.08.2005 15:34

Carlos

V tomto fóre nie sú ďalšie neprečítané témy.

Content-type

v Backend

5

867

25.03.2007 11:30

p360t

V tomto fóre nie sú ďalšie neprečítané témy.

Parse error: syntax error, unexpected ')'

v Backend

25

3969

16.05.2009 14:37

pkrajnak

V tomto fóre nie sú ďalšie neprečítané témy.

zoradenie array

v Backend

6

571

04.06.2010 10:42

camo



© 2005 - 2026 PCforum, edited by JanoF