Problème de casting avec tableau dynamique
Bonsoir à tous,
Continuant mes premiers pas avec libsndfile (et avec C++... merci pour votre indulgence), je cherche à modifier le bloc suivant
Code:
1 2 3 4 5 6 7 8
| define BUFFER_LEN 1024
static double data [BUFFER_LEN] ;
int readcount ;
SNDFILE *infile ;
while ((readcount = sf_read_double (infile, data, BUFFER_LEN))){
... // do something with data
} |
de façon à travailler avec une copie intégrale des données du fichier wav, et non par bloc de 1024 comme c'est la cas ici.
Il me faut pour cela un tableau dynamique, ne connaissant pas à l'avance le nombre de blocs de 1024 dans le fichir wav.
Le plus simple me semble t-il est de travailler avec une variable de type vector<double> à laquelle je pourrais appliquer une fonction push_back dans le corps du while.
Code:
1 2 3 4 5
| std::<vector> song;
..
while ((readcount =sf_read_double(infile, data, BUFFER_LEN))){
song.push_back(data);
} |
Je me retrouve bien entendu avec l'erreur suivante:
Code:
no matching function for call to 'std::vector<double>::push_back(double[1024])'
N'ayant peut-etre pas besoin de travailler avec des blocs de 1024, j'ai essayé l'approche suivante:
Code:
1 2 3 4 5
| static double data ;
std::vector<double> song;
while(readcount = sf_read_double(infile, data, 1)){
song.push_back (data);
}; |
Mais j'ai bien sûr un problème de conversion 'double*' to double
Si qq'un avait une astuce/solution svp.
Thanks!