Bon ben problème résolue alors...
Ca venait de la manière dont j'utilisais ma fonction, pas de la fonction elle même... Désolé de vous avoir fait galérer...
Pour conclure voici le code final:
...
Type: Messages; Utilisateur: ncheboi
Bon ben problème résolue alors...
Ca venait de la manière dont j'utilisais ma fonction, pas de la fonction elle même... Désolé de vous avoir fait galérer...
Pour conclure voici le code final:
...
Pour confirmer mes suspicions je viens de trouver quelque chose sur un autre blog.
Il dit que le fait d'avoir fait char* db = "..." dans le main fait que db est un const char qui ne peut donc pas...
Dites-moi, j'ai bien le droit de modifier un char* passé à une fonction???
Parce que j'ai cherché sur internet pour des gens ayant la même erreur que moi et on dit que c'est une erreur de gestion de...
J'ai pris en compte tes modifs mais j'ai toujours une exception levée:
Violation d'accès lors de l'écriture à l'emplacement...
dès que j'essaye d'accéder à database...
En plus, en débogant,...
euh j'ai peur de ne pas t'avoir suivi là.
dans la boucle si j'utilise strncat(database), ben je modifie database sans avoir fini de tout copier... bref, c'est ce que j'expliqué au dessus.
sinon,...
Non parce que le strncat concatène dans temp_db des charactères qui sont dans database. En gros le vector keys contient des pointeurs à différents endroits de database... J'ai trié en utilisant ces...
void pRadix_sort2(char *database)
{
vector <char*> keys;
int db_length = strlen(database);
//after his for loop, the keys vector will contain pointers to the beginning of each key
for(int i...
j'ai aussi essaye
strncpy(database,temp_db,strlen(temp_db) + 1);
mais en vain. j'ai l'impression que je peux pas modifier database. pourtant elle n'est pas constante...
Ok, désolé pour la gourde :oops:.
database = (char*)memmove(database,temp_db,sizeof(temp_db)*strlen(temp_db));
... pour être sur j'ai bien vérifié que sizeof(temp_db)*strlen(temp_db)...
Par référence non constante? J'imagine que tu veux dire:
void pRadixSort(char &database);
en signature de fonction? Si c'est le cas, je ne peux pas modifier la signature de ma fonction donc il...
oups j'étais retourné sur la page 1 et j'avais pas vu la réponse d'Arzar. Désolé d'avoir reposté les mêmes erreurs. Je prends en compte vos remarques et je reviens vers vous.
Merci beaucoup en tout...
J'avais essayé mais ça résoud pas mon problème....
bon en révisant un peu l'allocation dynamique, j'ai vu qu'en c++, on devait plutot utilisé new et delete...
bref, mon problème est donc résolue:
char* temp_db = new char;
*temp_db = '\0';...
Nikel. Voila ce que j'ai fait:
char* temp_db = (char*)malloc(sizeof(database));
*temp_db = '\0'; //initialiser à chaine vide, si je fais pas ça, la chaine contient des trucs bizarre avant
cout...
Bon finalement je me suis rendu compte que partir avec un vector de char* changeait pas beaucoup à mon algo...
Par contre, un nouveau problème...
void pRadix_sort2(char *database)
{
vector...
Non non le but c'est pas de manipuler les pointeurs. Au fait, je dois implémenter le tri radix en parallèle avec OpenMP:?... Le truc c'est que je suis parti sur des vector de string alors que je...
Ok. Merci pour l'exemple d'implémentation.
Sinon une question concernant les namespace. Je peux avoir
using namespace std;
using namespace re2;
sans avoir de conflit?
Dans tous les cas, si j'utilise un wrapper, je vais quand même créer des objets en plus? Si je manipule les char* directement je prends moins de place non? Bien sur c'est plus galère à gérer que les...
Merci, je jette un coup d'oeil à tout ça et je vous tiens rapidement au courant. Par contre, je sais pas trop si je vais pouvoir me servir, mon prof est assez chiant là dessus et il voulait qu'on...
Hmmm. Merci pour la réponse mais je crois pas que ça ne résoud pas mon problème. Le truc c'est que je vais recevoir un char* pointant sur plus de 48 000 000 de chars... Ca fait dans les 90mega...
...
Bonjour. Je cherche à convertir un char* en référence sur un string. En gros faire quelque chose comme ça...
char* c = "church";
string &s = c;
Mais le compilateur veux pas. Existe-t-il un...
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.