J'ai le problème suivant:Comment déterminer la longueur totale des caractères d'un tableau de pointeurs char?
J'ai un tableau de pointeurs ombles
char *opts[] = { "-a", "--append", "-b" };
et un nom de commande stocké dans
char cmd[] = "ls";
Maintenant, je dois calculer toutes les combinaisons possibles, que je avez fait en utilisant la bibliothèque scientifique GNU et exécutez la commande avec les combinaisons de calcul.
Le problème que j'ai est de savoir comment calculer la quantité de mémoire que j'ai besoin pour le char * se passer à un système().
Voici mon premier essai:
int length = strlen(cmd) * sizeof(char);
for (int i = 0; i < 3; ++i) {
length += strlen(opts[i]) * sizeof(char);
}
Eh bien, cela a fonctionné, mais je sens que ce n'est pas le droit/meilleure solution. Puis-je pas jeté les deux dimensions-tableau à une dimension à réseau plat et obtenir la taille de celui-ci (si je ne me trompe pas, le sont pas des tableaux multidimensionnels en C, C les imite seulement).
puisque tout est en fin de compte mis en correspondance avec une unidimensionnelle espace mémoire, aucune langue n'a vraiment des tableaux multidimensionnels ... – fortran