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...
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.
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 *) ???
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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; }
Merci pour votre aide
Partager