Partage
  • Partager sur Facebook
  • Partager sur Twitter

Contenu de Liste

Sujet résolu
    19 mai 2015 à 15:18:21

    Salut,

    J'ai un peu honte de vous demander ça car mon problème me paraissait débile mais je n'arrive toujours pas à le résoudre -_-

    J'ai un liste que je dois passer en arguments à une fonction C (via ctypes).
    Jusque là rien de méchant me direz-vous.

    Le problème c'est que pour envoyer une liste de doubles il faut créer un tampon dans lequel on va ller assigner nos valeurs.

    maListe = [1.0,2.0,3.0]
    
    monTampon = c_double * len(maListe)
    #On cherche x = monTampon(1.0,2.0,3.0)
    
    x = monTampon(maListe) #Ne marche pas
    x = monTampon(tuple(maListe)) #Non plus
    x = monTampon(z for z in maListe) #Et ... Non plus

    Si quelqu'un a une autre idée :/
    J'ai l'impression que c'est un truc tout con ... mais quoi ? :)

    • Partager sur Facebook
    • Partager sur Twitter
    OpenClassrooms retire tellement d'aiguilles de nos pieds qu'on pourrait ne plus trouver le foin de notre botte :)
      19 mai 2015 à 15:29:26

      #Lors de la creation de ma liste j'ai tente:
      monTampon = c_double * len(mesElements*3)
      
      monTuple = monTampon()
      
      for x in mesElements:
        monTuple += x[0]
        monTuple += x[1]
        monTuple += x[2]
      # NE MARCHE PAS NON PLUS

      -
      Edité par IQbrod 19 mai 2015 à 15:35:45

      • Partager sur Facebook
      • Partager sur Twitter
      OpenClassrooms retire tellement d'aiguilles de nos pieds qu'on pourrait ne plus trouver le foin de notre botte :)
        19 mai 2015 à 15:54:08

        Solution :

        monTampon = c_double * (len(mesElements)*3)
        
        maListe = monTampon()
        
        i=0
        for element in mesElements:
          maListe[i*3+0] = element[0]
          maListe[i*3+1] = element[1]
          maListe[i*3+2] = element[2]
          i+=1
        
        maFunctionC(maListe,len(maListe))
        • Partager sur Facebook
        • Partager sur Twitter
        OpenClassrooms retire tellement d'aiguilles de nos pieds qu'on pourrait ne plus trouver le foin de notre botte :)

        Contenu de Liste

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown