infoarena

infoarena - concursuri, probleme, evaluator, articole => Informatica => Subiect creat de: Andrei Homorodean din Octombrie 06, 2006, 15:24:29



Titlul: invalid memory reference
Scris de: Andrei Homorodean din Octombrie 06, 2006, 15:24:29
incercand sa trimit sa o sursa( curse de cai ), am primit eroarea RUN ERROR - Invalid memory reference.... ce sa zic eu lucrez pe gcc si la mine merge.... am gresit eu cumva?!


Titlul: Raspuns: invalid memory reference
Scris de: Bondane Cosmin din Octombrie 06, 2006, 15:35:32
http://infoarena.devnet.ro/index.php?page=Regulament#Mesaje_evaluator ...


Titlul: Raspuns: invalid memory reference
Scris de: Andrei Homorodean din Octombrie 06, 2006, 15:56:36
merci de raspuns trebuia sa citesc chestia aia :P

oricum, faza e ca n-am reusit sa indrept. chestia cu limita de stiva si heap pica pentru ca am folosit doar 2 vectorii de 1002 de elemente si o functie vai de capul ei, fara nimic repetitiv.... for-urile merg pana la 1000... am folosit si niste define-uri, dar le-am scos acum, dar nu era din cauza lor...


nu-mi dai, te rog mult, niste exemple mai clare in care ar putea sa apara? sunt cam  :fighting:(batut in cap)...


Titlul: Raspuns: invalid memory reference
Scris de: Andrei Homorodean din Octombrie 06, 2006, 15:57:37
apropos, e prb... curse de cai


Titlul: Raspuns: invalid memory reference
Scris de: u-92 din Octombrie 06, 2006, 16:05:10
Citat
sau la un acces invalid in memorie, accesarea unui pointer invalid, indecsi intr-un tablou care depasesc dimensiunile tabloului

analizeaza sursa cu atentie, undeva trebuie sa apara o situatie din asta


Titlul: Raspuns: invalid memory reference
Scris de: Andrei Homorodean din Octombrie 06, 2006, 16:15:08
n-as putea sa-mi pun sursa aici?.... nu-mi iasa nicicum....


Titlul: Raspuns: invalid memory reference
Scris de: Bondane Cosmin din Octombrie 06, 2006, 16:17:38
declara siruriile mai mari...poate merge


Titlul: Raspuns: invalid memory reference
Scris de: Andrei Homorodean din Octombrie 06, 2006, 16:20:54
am schimbat toate elementele din int in long, functia am pus-o long, parametrii bineinteles, am pus si vectorii mai mari... nu-mi iasa


Titlul: Raspuns: invalid memory reference
Scris de: Andrei Homorodean din Octombrie 06, 2006, 16:26:58
Cod:
#include <stdio.h>
#include <memory.h>


long ionel;

long detcost(  long vi, long vg  )
{
ionel -= vi;

if(  vg > ionel  )
   vg = ionel;

ionel -= vg;

if(  ionel < 0  )
   ionel = 0;

return vg;
}



int main()
{
long increment, n, vi[1002], vg[1002], t, for1, for2, for3, for4, for5;
long cost = 0;



freopen(  "cai.in", "r", stdin  );
freopen(  "cai.out", "w", stdout  );




scanf(  "%ld\n",  &t  );


for(  for1 = 0; for1 < t; ++for1  )
    {

      memset(  vi, 0, sizeof(vi)  );
      memset(  vg, 0, sizeof(vg)  );
      cost = 0;
      ionel = 0;



      scanf(  "%ld\n", &n  );

      for(  for2 = 0; for2 < n; ++for2  )
  {
    scanf(  "%ld ", &increment  );
    ++vg[increment];
  }

      scanf(  "\n"  );


      for(  for3 = 0; for3 < n; ++for3  )
  {
    scanf(  "%ld ", &increment  );
    ++vi[increment];
  }

      scanf(  "\n"  );

      for(  for4 = 0; for4 <= 1000; ++for4  )
  {
    if(  vi[for4]   )
       ionel += vi[for4];
    if(  vg[for4]  )
       {
if(  vg[for4] == ionel  &&  vi[for4] == ionel  &&  ionel != 0  )
    {
      cost += 0;

    }

else if( ionel == 0  ||  ionel < 0  )
    {
      ionel = 0;
      cost -= 200*vg[for4];
    }
else if(  vi[for4] == 0  && ionel  )
    {
      if(  ionel > vg[for4]  )
{
   cost += 200*vg[for4];
   ionel -= vg[for4];
}
      else
{
   cost += 200*ionel;
   ionel = 0;
}
    }

   else
     {
       cost += 200*detcost(  vi[for4], vg[for4]  );
     }
       }
  }
       printf(  "%ld\n", cost  );

     }


fclose(  stdin  );
fclose(  stdout  );

return 0;
}


poate doar operatii pe numere mari.... ce as putea sa zic altceva.....





Titlul: Raspuns: invalid memory reference
Scris de: Andrei Homorodean din Octombrie 06, 2006, 16:40:20
eu mi-am facut ceva teste si imi dau bine... ce-i drept nu prea mari, dar ok oricum....


Titlul: Raspuns: invalid memory reference
Scris de: Bondane Cosmin din Octombrie 06, 2006, 17:45:39
habar nu am dc nu iti mere, adica de ce iti apare eroarea aia.


Titlul: Raspuns: invalid memory reference
Scris de: andreit1 din Octombrie 06, 2006, 20:13:11
for(  for3 = 0; for3 < n; ++for3  )
     {
       scanf(  "%ld ", &increment  );
       ++vi[increment];
     }
Esti sigur ca numerele citite sunt mai mici de 1002?


Titlul: Raspuns: invalid memory reference
Scris de: Andrei Homorodean din Octombrie 06, 2006, 21:50:26
:(.............
stupid me... ai dreptate..... n e mai mic de 1000..... uhhhh


Titlul: Raspuns: invalid memory reference
Scris de: Andrei Homorodean din Octombrie 06, 2006, 21:50:56
multumesc celor ce au pierdut timpu cu mine :P