Les chaines de caracteres
Bonjour a vous tous,
j'aimerais connaitre quelle forme utiliser pour definir une chaine de caractere {char *chaine ou char chaine[]} lorsqu'on utilise les fonctions de <string.h>
Enfin les differences qu'il existe entre ces deux declarations...
:oops: Je pensais qu'elles etaient plus ou moins equivalente. Mais j'ai l'impression que j'evite des erreurs quand je fais l'une ou l'autre des declarations.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define _GNU_SOURCE
int main (void)
{
char *text = "test";
char *res;
res = strndup (text,6);
/* Mess de gcc:
1) implicit declaration of function 'strndup'
2) assignment makes pointer from integer without cast...
*/
printf("%s\n",res);
return 0;
} |
2)warning enlevé si je mets => res = (char *) strndup (text,6); mais je dois avouer ne pas trop comprendre l'utilitée de ceci... car d'apres ce que j'ai lu du man de strndup, cette fonction renvoie un pointeur sur une nouvelle chaine de caractere... als pourquoi le cast (char *) ???:oops:
Merci pour votre aide