Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources sécurité
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 25/04/2006, 17h34   #1
Membre Expert
 
Avatar de GLDavid
 
Inscription : janvier 2003
Messages : 2 620
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2003
Messages : 2 620
Points : 2 474
Points : 2 474
Par défaut [Sécurité] Erreur d'allocation mémoire

Bonjour

J'ai un petit problème. Je veux pouvoir créer un tableau d'objet. Donc, dans un script PHP, j'ai la classe suivante :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
 
<?php
class siRNA{
     var $sens;
     var $antisens;
     var $start;
     var $enthalpy;
     var $entropy;
     var $MW;
     var $GC;
     var $Tm;
     var $score;
 
     function siRNA(){
         $sens = "";
         $antisens = "";
         $start = 0;
         $enthalpy = 0;
         $entropy = 0;
         $MW = 0;
         $GC = 0;
         $Tm = 0;
         $score = 0;
     }
 
     function setSens($chain){
         $this->sens=$chain;
     }
 
     function setAntisens($chain){
         $this->antisens=$chain;
     }
 
     function setStart($value){
         $this->start=$value;
     }
 
     function setEnthalpy($value){
         $this->enthalpy=$value;
     }
 
     function setEntropy($value){
         $this->entropy=$value;
     }
 
     function setMW($value){
         $this->MW=$value;
     }
 
     function setGC($value){
         $this->GC=$value;
     }
 
     function setTm($value){
         $this->Tm=$value;
     }
 
     function setScore($value){
         $this->score=$value;
     }
 
 }
?>
Et dans un autre script, je fais mon tableau d'objet:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
<?
require_once("siRNA.php");
 
for($i=0; $i<count($data); $i+2){
    $siRNA = new siRNA();
    $siRNA->setAntisens($data[$i+1]);
    $array = explode("\t", $data[$i]);
    $siRNA->setSens($array[0]);
    $siRNA->setStart($array[1]);
    $siRNA->setEnthalpy($array[2]);
    $siRNA->setEntropy($array[3]);
    $siRNA->setMW($array[4]);
    $siRNA->setGC($array[5]);
    $siRNA->setTm($array[6]);
    $siRNA->setScore($array[7]);
    array_push($list_sirna, $siRNA);
}
?>
Le problème, c'est qu'en cours de script, j'ai cette erreur :
Code :
1
2
Fatal error:  Allowed memory size of 67108864 bytes exhausted (tried to allocate 43 bytes)
Je ne pensais pas allouer autant de mémoire !
Comment réparer cette erreur ?
Merci d'avance de votre aide.

@++
__________________
GLDavid
Consultez la FAQ Perl ainsi que mes cours de Perl.
N'oubliez pas les balises code ni le tag

Je ne répond à aucune question technique par MP.
GLDavid est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/04/2006, 17h38   #2
Membre confirmé
 
Inscription : août 2003
Messages : 225
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : août 2003
Messages : 225
Points : 225
Points : 225
Envoyer un message via MSN à Steph82
Salut

Code :
 for($i=0; $i<count($data); $i+2){
T'as une boucle infini, ton $i+2 n'evolue pas, c'est pas $i++ ?
Steph82 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/04/2006, 17h43   #3
Membre Expert
 
Avatar de GLDavid
 
Inscription : janvier 2003
Messages : 2 620
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2003
Messages : 2 620
Points : 2 474
Points : 2 474
Exact Steph, j'ai abouti à la même conclusion que toi. Voici la boucle correcte :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
for($i=0; $i<count($data); $i++){
    if($i&1){
        $siRNA2 = $list_sirna[count($list_sirna)-1];
        array_pop($list_sirna);
        $siRNA2->setAntisens($data[$i]);
        array_push($list_sirna, $siRNA2);
    }
    else{
        $siRNA = new siRNA();
        $array = explode("\t", $data[$i]);
        $siRNA->setSens($array[0]);
        $siRNA->setStart($array[1]);
        $siRNA->setEnthalpy($array[2]);
        $siRNA->setEntropy($array[3]);
        $siRNA->setMW($array[4]);
        $siRNA->setGC($array[5]);
        $siRNA->setTm($array[6]);
        $siRNA->setScore($array[7]);
        array_push($list_sirna, $siRNA);
    }
}
@++
__________________
GLDavid
Consultez la FAQ Perl ainsi que mes cours de Perl.
N'oubliez pas les balises code ni le tag

Je ne répond à aucune question technique par MP.
GLDavid est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/04/2006, 17h47   #4
Membre confirmé
 
Inscription : août 2003
Messages : 225
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : août 2003
Messages : 225
Points : 225
Points : 225
Envoyer un message via MSN à Steph82
Ca, c'est généralement une erreur de fatigue, a force de trop programmer, on voit pas du premier coup la solution du petuit bug .
Steph82 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/04/2006, 08h34   #5
Membre Expert
 
Avatar de GLDavid
 
Inscription : janvier 2003
Messages : 2 620
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2003
Messages : 2 620
Points : 2 474
Points : 2 474
Exact cher Steph, faut que je dorme ce week-end
__________________
GLDavid
Consultez la FAQ Perl ainsi que mes cours de Perl.
N'oubliez pas les balises code ni le tag

Je ne répond à aucune question technique par MP.
GLDavid est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h36.


 
 
 
 
Partenaires

Hébergement Web