Pagini: [1]   În jos
  Imprimă  
Ajutor Subiect: Compilare/executie in MinGW  (Citit de 5363 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
nparfene2004
Client obisnuit
**

Karma: 22
Deconectat Deconectat

Mesaje: 81



Vezi Profilul
« : Decembrie 27, 2009, 12:35:57 »

As avea doua intrebari:

Prima ar fi daca un evaluator face verificarea memoriei/stivei utilizate la compilarea sau la executia unui program.

A doua intrebare: daca voi compila (sub Windows) un program in MinGW cu o comanda de genul
   g++.exe test.cpp -o test.exe
exista vreun parametru suplimentar care se poate adauga si care limiteaza memoria utilizata?

Multumesc si sarbatori fericite!
Memorat
sima_cotizo
Nu mai tace
*****

Karma: 219
Deconectat Deconectat

Mesaje: 596



Vezi Profilul
« Răspunde #1 : Decembrie 27, 2009, 12:46:00 »

Verificarile astea se fac la rulare. Imagineaza-ti ca ai un program care citeste N numere de la tastatura si le baga in stiva. La compilare programul nu va sti niciodata cate numere ai tu de gand sa introduci si, ca atare, daca depasesti limita de memorie sau nu. Ma indoiesc deci ca ar fi vreun flag de compilare pentru asa ceva.

In alt topic a postat Toni doua linkuri catre doua evaluatoare. Incearca sa le folosesti pe acelea.
Memorat
toni2007
Nu mai tace
*****

Karma: 160
Deconectat Deconectat

Mesaje: 663



Vezi Profilul
« Răspunde #2 : Decembrie 27, 2009, 14:24:35 »

Daca lucrezi cu freepascal se poate limita la compilare.
Memorat
nparfene2004
Client obisnuit
**

Karma: 22
Deconectat Deconectat

Mesaje: 81



Vezi Profilul
« Răspunde #3 : Decembrie 27, 2009, 16:12:59 »

Ok, multumesc pentru raspunsuri.

Totusi, eu m-am gandit ca daca limita de memorie este 2 MB si eu declar
int a[1 000 000];
deja am depasit, doar alocarea statica se face la compilare, nu?

Evaluatorul "lime_v0.9.5.26" l-am descarcat si imi da un mesaj la lansarea in executie

"The application failed to initialize properly (0xc0000135). Click on OK to terminate the application".
Memorat
devilkind
Echipa infoarena
Nu mai tace
*****

Karma: 284
Deconectat Deconectat

Mesaje: 1.240



Vezi Profilul
« Răspunde #4 : Decembrie 27, 2009, 17:04:40 »

Nu este adevarat. Alocarile de memorie se fac la executie nu la compilarea. Compilarea nu face altceva decat sa traduca codul tau in cod binar Tongue.
Memorat
toni2007
Nu mai tace
*****

Karma: 160
Deconectat Deconectat

Mesaje: 663



Vezi Profilul
« Răspunde #5 : Decembrie 27, 2009, 23:24:32 »

Ti-a dat acel mesaj probabil pt ca nu ai instalat .NET framework.
Memorat
nparfene2004
Client obisnuit
**

Karma: 22
Deconectat Deconectat

Mesaje: 81



Vezi Profilul
« Răspunde #6 : Decembrie 28, 2009, 07:51:40 »

Asa e, nu am instalat .net framework. Multumesc de indicatie!
Dar poate imi zici si cum faci verificarea dimensiunii memoriei la executie?  Very Happy
Memorat
toni2007
Nu mai tace
*****

Karma: 160
Deconectat Deconectat

Mesaje: 663



Vezi Profilul
« Răspunde #7 : Decembrie 28, 2009, 08:24:44 »

Nu mai stiu cum face. Cand l-am intrebat pe autor mi-a zis ca facea cu threaduri, dar avand in vedere ca pe vremea aia nu prea stiam mare lucru despre asta, am uitat Smile. Oricum vezi aceasta functie.
Memorat
nparfene2004
Client obisnuit
**

Karma: 22
Deconectat Deconectat

Mesaje: 81



Vezi Profilul
« Răspunde #8 : Decembrie 28, 2009, 22:47:10 »

Mai am o intrebare, daca se poate.

In MinGW cum rulez un program cu parametri?
Adica am functia main asa:

int main(int n, char *v[])

cum pun parametrii?

Stiu ca in BorlandC puneam in Run->Parameters.

Multumesc!
Memorat
popoiu.george
Vorbaret
****

Karma: 19
Deconectat Deconectat

Mesaje: 162



Vezi Profilul
« Răspunde #9 : Decembrie 28, 2009, 23:09:24 »

poi daca executabilul este test.exe si ai int main(int n,char *v) la rulare faci

test 10 unsirdecaractere
n=10;
v="unsirdecaractere";
Memorat
toni2007
Nu mai tace
*****

Karma: 160
Deconectat Deconectat

Mesaje: 663



Vezi Profilul
« Răspunde #10 : Decembrie 28, 2009, 23:13:10 »

Cod:
int main(int argc, char ** argv) {
   puts(argv[1]);
}
Memorat
sima_cotizo
Nu mai tace
*****

Karma: 219
Deconectat Deconectat

Mesaje: 596



Vezi Profilul
« Răspunde #11 : Decembrie 28, 2009, 23:39:46 »

poi daca executabilul este test.exe si ai int main(int n,char *v) la rulare faci

test 10 unsirdecaractere
n=10;
v="unsirdecaractere";

n nu e 10. n e 3 ("test", "10", "unsirdecaractere" -> 3 parametrii, din care primul este numele executabilului).
Memorat
nparfene2004
Client obisnuit
**

Karma: 22
Deconectat Deconectat

Mesaje: 81



Vezi Profilul
« Răspunde #12 : Decembrie 29, 2009, 12:40:10 »

Rularea asa cu parametri stiam deja, eu am intrebat altceva:

Cum pun parametrii in mediul MinGW astfel incat sa dau CTRL+F5 (executie), iar parametrii sa fie pusi undeva cu vreo optiune din meniu. Cum am mai zis: in BorlandC puneam parametrii in Run->Programs apoi dadeam CTRL+F9. Ceva similar in MinGW ?
Memorat
alexandru92
Nu mai tace
*****

Karma: -191
Deconectat Deconectat

Mesaje: 496



Vezi Profilul
« Răspunde #13 : Decembrie 29, 2009, 12:52:59 »

Se face din cmd.
Cod:
cd "path"  //path catre executabilul programului
nume_program.exe lista_parametri
Memorat
Pagini: [1]   În sus
  Imprimă  
 
Schimbă forumul:  

Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines