Articles of tableaux

Quels sont les tableaux constants?

Quels sont les tableaux constants? Si on définit const char hex_char[] = { ‘0’, ‘1’, ‘2’, ‘3’, ‘4’, ‘5’, ‘6’, ‘7’, ‘8’, ‘9’, ‘A’, ‘B’, ‘C’, ‘D’, ‘E’, ‘F’ }; Ensuite, il ne devrait pas être modifié par programme; Qu’est-ce que ça veut dire?

La conversion d’un pointeur en un type en un pointeur en un tableau de type est-elle sûre?

Il y a quelques jours, je suis tombé sur un code dans lequel une utilisation intensive des conversions de pointeur en type à en pointeur en tableau a été effectuée pour donner une vue bidimensionnelle d’un vecteur linéaire en mémoire. Un exemple simple d’une telle technique est présenté ci-dessous pour plus de clarté: #include #include […]

Passer un tableau de pointeur sur une fonction en C?

J’ai le code suivant: int main(){ char **array; char a[5]; int n = 5; array = malloc(n *sizeof *array); /*Some code to assign array values*/ test(a, array); return 0; } int test(char s1, char **s2){ if(strcmp(s1, s2[0]) != 0) return 1; return 0; } J’essaie de transmettre char et un tableau de pointeurs de caractères […]

C: Conversion du tableau de caractères non signé en signé int (et vice versa)

J’essaie de convertir un tampon de tableau de caractères non signé en un entier signé (et vice versa). Ci-dessous, un code de démonstration: int main(int argv, char* argc[]) { int original = 1054; unsigned int i = 1054; unsigned char c[4]; int num; memcpy(c, (char*)&i, sizeof(int)); //num = *(int*) c; // method 1 get memcpy((char […]

C – tableau de caractères et pointeur de caractères

Pourquoi je ne peux pas définir un tableau char **pp={ “123”, “456”, “789” }; Mais je peux le définir comme un caractère * [], et l’envoyer à une fonction qui l’acceptera comme un caractère ** char *pp[]={ “123”, “456”, “789” }; fun(pp); void fun(char **pointerToPointer) { //++(**pointerToPointer);//error printf(“%s”, *pointerToPointer); } //output::”123″ Et pourquoi je ne […]

Est-ce légal C / C ++? `int * p = (int ) {1,2,3};`

Cette réponse a généré des commentaires affirmant que la construction suivante n’est pas légale C / C ++: void f (int* a) ; f ((int[]){1,2,3,4,0}) ; (voir ce lien ideone pour un programme complet). Mais nous n’avons pas pu résoudre le problème. Quelqu’un peut-il nous éclairer? Que disent les différentes normes?

Tableaux dans différentes langues – références de magasin ou objects bruts?

J’essaie de comprendre la mémoire brute dans différentes langues lors de l’utilisation d’un tableau. Considérez le code Java suivant: Ssortingng a = “hi”; Ssortingng b = “there”; Ssortingng c = “everyone”; Ssortingng[] array = {a, b, c}; Évidemment, le tableau contient des références et non des objects; c’est-à-dire qu’il y a un tableau contigu en […]

C – confusion entre malloc et tableaux

J’essayais de comprendre la fonction malloc en C et j’ai écrit le code suivant: int i; int *arr = (int*)malloc(5*sizeof(int)); if(arr==NULL){ printf(“Failed to allocate memory for arr…\n”); exit(1); } Je pensais que cela signifiait que seulement 5 éléments pouvaient être ajoutés au tableau. Pour vérifier si cela était vrai, j’ai ajouté le code suivant: arr[0] […]

Retour de tableaux multidimensionnels à partir d’une fonction en C

Quel est le meilleur moyen de retourner un tableau multidimensionnel à partir d’une fonction dans c? Supposons que nous devions générer un tableau multidimensionnel dans une fonction et l’appeler en tant que main. Est-il préférable de l’envelopper dans une structure ou de simplement renvoyer un pointeur en mémoire sur le tas? int *create_array(int rows, int […]

Si les caractères sont en lecture seule, pourquoi puis-je les écraser?

Mon cours m’a appris que les caractères sont statiques / en lecture seule. J’ai donc pensé que cela signifierait que vous ne pouvez pas les modifier après les avoir définis. Mais quand je cours: char* fruit = “banana”; printf(“fruit is %s\n”, fruit); fruit = “apple”; printf(“fruit is %s\n”, fruit); Ensuite, il comstack bien et me […]