J'ai une structure qui a un tableau de pointeurs. Je voudrais insérer dans les chiffres de tableau dans le format de chaîne, c.-à-d. "1", "2", etc.C: utilisation de sprintf et strncpy insertion de données dans un tableau de pointeurs
Cependant, y a-t-il une différence dans l'utilisation de sprintf ou de strncpy?
Des grosses erreurs avec mon code? Je sais que je dois appeler gratuitement, je le ferai dans une autre partie de mon code.
Un grand merci pour tout conseil!
struct port_t
{
char *collect_digits[100];
}ports[20];
/** store all the string digits in the array for the port number specified */
static void g_store_digit(char *digit, unsigned int port)
{
static int marker = 0;
/* allocate memory */
ports[port].collect_digits[marker] = (char*) malloc(sizeof(digit)); /* sizeof includes 0 terminator */
// sprintf(ports[port].collect_digits[marker++], "%s", digit);
strncpy(ports[port].collect_digits[marker++], digit, sizeof(ports[port].collect_digits[marker]));
}
L'opérateur sizeof ne s'applique certainement pas uniquement aux baies. {int x; printf ("x est% d caractères \ n", sizeof x); } est parfaitement valide, pas de tableau en vue. – unwind
@unwind: Bien sûr. Je voulais dire dans ce contexte. – dirkgently