begin process at 2012 02 11 00:32:25
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Divers

 > 

erreur mémoire pour un décompte


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

erreur mémoire pour un décompte

lundi 6 janvier 2003 à 09:48:30 | erreur mémoire pour un décompte

yeager

Bonjour

j'ai fait un petit code pour lancer un programme toutes les 30 secondes.
Lorsque je lance le débugger, ça marche nichel.
Mais lorsque je lance le programme tout seul ça merde.
C'est une fonction récurcive qui pour l'instant est censée me dire quand les 30 secondes sont écoulées.

merci de votre aide


yeager

#include <stdio.h>
#include <winsock2.h>
#include <conio.h>
#include <time.h>

void test_fonction_temps()
{
time_t instant_initial = 0;

instant_initial = time (NULL);

if (instant_initial == ((time_t) - 1))
{
fprintf(stdout,"erreur d'horloge");
}
else
{
fct_temps(instant_initial);
}
}

void fct_temps(time_t instant_initial)
{
char saisie = 0;
time_t instant_final;
double ecart=0;


instant_final = time (NULL);

if (instant_final == ((time_t) - 1))
{
fprintf(stdout,"erreur d'horloge");
getch();
}
else
{
ecart = difftime(instant_final,instant_initial);
if (ecart >= 30)
{
fprintf(stdout,"cela fait trentes secondes");
getch();
}
else
{
fct_temps(instant_initial);
}
}

}

void test_fonction_temps()
{
time_t instant_initial = 0;


instant_initial = time (NULL);

if (instant_initial == ((time_t) - 1))
{
fprintf(stdout,"erreur d'horloge");
}
else
{
fct_temps(instant_initial);
}
}


void main()
{
test_fonction_temps();
}
lundi 6 janvier 2003 à 10:25:43 | Re : erreur mémoire pour un décompte

jcecchi

Salut,

Le classique probleme des fonctions recursives : le depassement de memoire.
A chaque appel tu crees 2 time_t, 1 char et 1 double.
En 30s la fonction est tres tres tres souvent sollicite, il arrive donc un moment ou t'as plus assez de memoire et pouf le programme.
A moins qu'il soit imperatif pour toi de faire de cette maniere, utilise plutot une boucle while.

Je sais pas si c'est une erreur de copier/coller mais il y a deux fois la fonction test_fonction_temp().

-------------------------------
Réponse au message :
-------------------------------

> Bonjour
>
> j'ai fait un petit code pour lancer un programme toutes les 30 secondes.
> Lorsque je lance le débugger, ça marche nichel.
> Mais lorsque je lance le programme tout seul ça merde.
> C'est une fonction récurcive qui pour l'instant est censée me dire quand les 30 secondes sont écoulées.
>
> merci de votre aide
>
>
> yeager
>
> #include <stdio.h>
> #include <winsock2.h>
> #include <conio.h>
> #include <time.h>
>
> void test_fonction_temps()
> {
> time_t instant_initial = 0;
>
> instant_initial = time (NULL);
>
> if (instant_initial == ((time_t) - 1))
> {
> fprintf(stdout,"erreur d'horloge");
> }
> else
> {
> fct_temps(instant_initial);
> }
> }
>
> void fct_temps(time_t instant_initial)
> {
> char saisie = 0;
> time_t instant_final;
> double ecart=0;
>
>
> instant_final = time (NULL);
>
> if (instant_final == ((time_t) - 1))
> {
> fprintf(stdout,"erreur d'horloge");
> getch();
> }
> else
> {
> ecart = difftime(instant_final,instant_initial);
> if (ecart >= 30)
> {
> fprintf(stdout,"cela fait trentes secondes");
> getch();
> }
> else
> {
> fct_temps(instant_initial);
> }
> }
>
> }
>
> void test_fonction_temps()
> {
> time_t instant_initial = 0;
>
>
> instant_initial = time (NULL);
>
> if (instant_initial == ((time_t) - 1))
> {
> fprintf(stdout,"erreur d'horloge");
> }
> else
> {
> fct_temps(instant_initial);
> }
> }
>
>
> void main()
> {
> test_fonction_temps();
> }
lundi 6 janvier 2003 à 10:58:47 | Re : erreur mémoire pour un décompte

yeager

merci pour ton aide
Je dois impérativement utiliser la récursivité.
J'ai déclaré ecart et instant final dans test_fonction_temps en même temps que instant_initiale. J'ai viré la variable saisie qui me sert à rien pour l'instant.
J'ai toujours une erreur mémoire, mais en effet je pense que j'avais fait une grosse connerie en déclarant ainsi ecart et instant_final.
Merci

a+



-------------------------------
Réponse au message :
-------------------------------

> Salut,
>
> Le classique probleme des fonctions recursives : le depassement de memoire.
> A chaque appel tu crees 2 time_t, 1 char et 1 double.
> En 30s la fonction est tres tres tres souvent sollicite, il arrive donc un moment ou t'as plus assez de memoire et pouf le programme.
> A moins qu'il soit imperatif pour toi de faire de cette maniere, utilise plutot une boucle while.
>
> Je sais pas si c'est une erreur de copier/coller mais il y a deux fois la fonction test_fonction_temp().
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > Bonjour
> >
> > j'ai fait un petit code pour lancer un programme toutes les 30 secondes.
> > Lorsque je lance le débugger, ça marche nichel.
> > Mais lorsque je lance le programme tout seul ça merde.
> > C'est une fonction récurcive qui pour l'instant est censée me dire quand les 30 secondes sont écoulées.
> >
> > merci de votre aide
> >
> >
> > yeager
> >
> > #include <stdio.h>
> > #include <winsock2.h>
> > #include <conio.h>
> > #include <time.h>
> >
> > void test_fonction_temps()
> > {
> > time_t instant_initial = 0;
> >
> > instant_initial = time (NULL);
> >
> > if (instant_initial == ((time_t) - 1))
> > {
> > fprintf(stdout,"erreur d'horloge");
> > }
> > else
> > {
> > fct_temps(instant_initial);
> > }
> > }
> >
> > void fct_temps(time_t instant_initial)
> > {
> > char saisie = 0;
> > time_t instant_final;
> > double ecart=0;
> >
> >
> > instant_final = time (NULL);
> >
> > if (instant_final == ((time_t) - 1))
> > {
> > fprintf(stdout,"erreur d'horloge");
> > getch();
> > }
> > else
> > {
> > ecart = difftime(instant_final,instant_initial);
> > if (ecart >= 30)
> > {
> > fprintf(stdout,"cela fait trentes secondes");
> > getch();
> > }
> > else
> > {
> > fct_temps(instant_initial);
> > }
> > }
> >
> > }
> >
> > void test_fonction_temps()
> > {
> > time_t instant_initial = 0;
> >
> >
> > instant_initial = time (NULL);
> >
> > if (instant_initial == ((time_t) - 1))
> > {
> > fprintf(stdout,"erreur d'horloge");
> > }
> > else
> > {
> > fct_temps(instant_initial);
> > }
> > }
> >
> >
> > void main()
> > {
> > test_fonction_temps();
> > }
>


Cette discussion est classée dans : erreur, temps, time, initial, instant


Répondre à ce message

Sujets en rapport avec ce message

Chronometrer le temps d'éxecution d'une fonction en C [ par poiuytrez3 ] Bonjour, je cherche comment chronometrer le temps d'éxecution d'un tri. Je sais qu'il faut utiliser le fichier time.h avec la fonction time(), j'ai e Temps d'éxecution. [ par NueclearSnake ] Bonjour, j'iamerais calculer le temps d'exécution d'une de mes fonctions.J'ai essayé et je trouve tout le temps 0;J'ai donc enlevé toutes mes fonction Initialisation de structure [ par goutbouyo ] Salut,J'ai une structure temps:struct temps { float time, elapsedTime, lastTime;};Je l'itinialise :<table border=0 cel PB gestion du temps windows et décharge CPU. [ par Luck_437 ] Bonjour tout le monde. Voila je présente mon code. Je cherche a éffectuer une décharge processeur au sein d'une application windows pour afficher de Temps d'attente précis (~ms) [ par Arateris ] Bonjour, pour une appli en C/C++, j'aurais besoin qu'un thread se mette en pause pour une durée courte (1,2,5 ou 10ms) de facon fiable. Mon but étan Socket Protocole HTTP [ par victorcoasne ] Bonjour,J'ai fait un proxy qui intègre un serveur WEB et lorsque que je lui demande de s'interroger, je me rends compte qu'il y a une erreur.Cette err Interview du créateur du C++ [ par rt15 ] Salut,Je l'ai pas mis dans le bar pour que ça reste entre utilisateurs du C++... Désolé si ça n'a pas sa place sur le forum, mais j'ai franchement rig Optimisation des intersections et des unions [ par islem1982 ] Salut tout le monde,Je suis en train de programmer un algorithme qui effectue un nombre énorme d'unions entre des ensembles ordonnés (ordre lexicograp C obtenir le temps [ par Yunchi ] Bonjour, J'ai un programme qui permet de trier un document. Mais le programme est assez long a executer : il met autour de 60s pour trier un document Thread en general [ par Yunchi ] Bonjour, J'ai deja eu affaire aux thread lors d'un projet en java pour afficher en temps reel les informations attendre que la fonction se finissent


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,624 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales