Stocker du texte dans une varaible en C
Pouic182
Messages postés
15
Date d'inscription
Statut
Membre
Dernière intervention
-
Char Snipeur Messages postés 9813 Date d'inscription Statut Contributeur Dernière intervention -
Char Snipeur Messages postés 9813 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour tout le monde,
J'aurais besoin de stocker du texte dans une variable en langage C, pour l'instant je fais ça de la manière suivante :
-- > char tableau_texte[65535];
Ce qui me renvoie une erreur de segmentation, car le texte que je cherche à stocker est trop grand pour être ranger dans ma variable.
Est ce que quelqu'un aurait une solution pour déclarer une variable plus grande que 65535 ?
Merci d'avance!
J'aurais besoin de stocker du texte dans une variable en langage C, pour l'instant je fais ça de la manière suivante :
-- > char tableau_texte[65535];
Ce qui me renvoie une erreur de segmentation, car le texte que je cherche à stocker est trop grand pour être ranger dans ma variable.
Est ce que quelqu'un aurait une solution pour déclarer une variable plus grande que 65535 ?
Merci d'avance!
A voir également:
- Stocker du texte dans une varaible en C
- Texte de chanson gratuit pdf - Télécharger - Vie quotidienne
- Transcription audio en texte word gratuit - Guide
- Excel cellule couleur si condition texte - Guide
- Mettre un texte en majuscule - Guide
- Insérer une image dans word sans bouger le texte - Guide
8 réponses
Salut.
Il faut dans ce cas là utiliser les pointeurs.
En C, utilise les fonctions malloc et calloc. Il faut compter le nombre de caractère.
Il faut dans ce cas là utiliser les pointeurs.
En C, utilise les fonctions malloc et calloc. Il faut compter le nombre de caractère.
Merci pour ta rapidité de réponse!
Est ce que c'est bon si je déclare mon pointeur de cette façon :
char* tableau_texte;
tableau_texte = calloc (999999 , sizeof(char));
Car après si je fais un :
nombre_de_caractere=recv(id_socket,tableau_texte,sizeof(tableau_texte),0);
Je ne récupére que les 8 premiers caractères de mon texte. . .
Verrais-tu une erreur dans ce que j'ai écrit ?
Est ce que c'est bon si je déclare mon pointeur de cette façon :
char* tableau_texte;
tableau_texte = calloc (999999 , sizeof(char));
Car après si je fais un :
nombre_de_caractere=recv(id_socket,tableau_texte,sizeof(tableau_texte),0);
Je ne récupére que les 8 premiers caractères de mon texte. . .
Verrais-tu une erreur dans ce que j'ai écrit ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Il y a realloc aussi.
je ne vois pas d'erreur dans ce que tu as écrit sur les pointeur.
Par contre dans le recv oui. sizeof donne la taille d'un tableau, pas la taille d'une zone de mémoire alloué par malloc ou calloc, dans les cas différents du tableau il donne la taille mémoire occupé par la variable, et dans le cas d'un pointeur, c'est 8 octets (64 bits) ce qui me laisse supposé que ton processeur est un 64 bits.
là il faut écrire :
recv(id_socket,tableau_texte,999999,0);
Là ça devrai fonctionner.
je ne vois pas d'erreur dans ce que tu as écrit sur les pointeur.
Par contre dans le recv oui. sizeof donne la taille d'un tableau, pas la taille d'une zone de mémoire alloué par malloc ou calloc, dans les cas différents du tableau il donne la taille mémoire occupé par la variable, et dans le cas d'un pointeur, c'est 8 octets (64 bits) ce qui me laisse supposé que ton processeur est un 64 bits.
là il faut écrire :
recv(id_socket,tableau_texte,999999,0);
Là ça devrai fonctionner.
Ca fonctionne un peu miex c'est vrai, merci!
En revanche, je n'arrive toujours pas a récupérer l'intégralité de mon texte, même en augmentant la taille de que j'alloue...
de plus, j'ai l'impression que la quantité de texte récupérer est aléatoire par moment.
Une dernière piste?
En revanche, je n'arrive toujours pas a récupérer l'intégralité de mon texte, même en augmentant la taille de que j'alloue...
de plus, j'ai l'impression que la quantité de texte récupérer est aléatoire par moment.
Une dernière piste?