Articles of tableaux

Erreur lors de l’access à l’élément du tableau dans la structure

J’essaie d’écrire un programme “ArrayList” (similaire à Java ArrayList ) qui se développera automatiquement à l’aide de realloc , de sorte que le programmeur n’aura pas à se soucier de l’espace de stockage dans les tableaux. Ceci est mon code: #include #include #include #include #define ARR_DEFAULT_SIZE 20 #define INCR 10 #define ARRTYPE char // Files […]

Quelle est la différence entre un tableau malloc et un tableau normal lorsque, dans les deux cas, je dois spécifier la taille de la mémoire?

Quelle est la différence entre un tableau malloc() et un tableau normal lorsque, dans les deux cas, je dois spécifier la taille de la mémoire, par exemple char* arr = malloc(50 * sizeof(char)) contre int arr [50]

Convertir int (32 bits) en caractère (8 bits)

J’ai ces définitions: int data = uartBaseAddress[UART_DATA_REGISTER / 4]; // data coming from UART RX port char message[20]; // array of 20 chars Maintenant, quand j’essaie de faire ceci: message[0] = (char) data; printf(“%x”, message[0]); Il imprime (par exemple): “ffffff9c” . Bien sûr, je ne veux que les 8 derniers bits (“9c”) et je ne […]

Assertion dans malloc.c: 2453

J’ai le programme suivant qui essaie de tokenize une chaîne (basée sur l’espace) et l’écris dans un tableau char **. #include #include #define len 180 void tokenize(char *str, char **tokens) { int l = 0, index = 0; int i = 0; int str_i; int tok_i; while(*str) { if (*str == ‘ ‘) { tokens[i] […]

Comment éliminer l’avertissement de passer tableau multidimensionnel en tant que tableau multidimensionnel const?

étant donné le code suivant: /* signatures */ int getParams(char params[MAX_PARAM_LEN][MAX_LINE_LEN]); int getVersion(const char params[MAX_PARAM_LEN][MAX_LINE_LEN], const char* tagName ); /* initializing */ char params[MAX_PARAM_LEN][MAX_LINE_LEN] = {}; /* getting parameters */ paramCount = getParams(params); /* OK, params match with getParams signature */ /* processing the params array */ i = getVersion(params, “version”); /* warning: passing arg […]

Pourquoi la taille des tableaux malloc-ed et non-malloced est-elle différente?

#include #include int main (int argc, char *argv[]) { int* arr1 = (int*)malloc(sizeof(int)*4); int arr2[4]; printf(“%d \n”, sizeof(arr1)); printf(“%d \n”, sizeof(arr2)); free(arr1); return 0; } Sortie 8 16 Pourquoi?

“Tableaux = Pointeurs” * mental soufflé *. De nombreuses années plus tard: “En fait, ils ne le font pas” * l’esprit est encore soufflé *

Le contexte: J’ai programmé en C pendant environ 2 ans avant de découvrir qu’un a[i] n’était que le sucre syntaxe pour *(a + i) et qu’il était donc équivalent à * (i + a) et i[a] . Ma réalité a été bouleversée et beaucoup de “AHA!” moment de révélation suivi dans les prochains jours d’étude […]

Comment déclarer un tableau de chaînes 2d constant en C

J’ai la structure de tableau suivante: left , right , top top , left , right top , top , left Je veux le déclarer en C, je l’ai fait comme ceci: char *movements[][] = {{“left”,”right”,”top”}, {“top”,”left”,”right”}, {“top”,”top”,”top”} } Mais je reçois cette error : array has incomplete element type. Quel est le bon moyen […]

Appeler Fortran de C avec un tableau de formes différées

Est-il possible d’appeler un sous-programme Fortran depuis C / C ++, où l’un des arguments de Fortran est un tableau à forme différée? (J’espère que j’utilise le terme “forme différée” correctement.) Dans l’exemple ci-dessous, subr1() utilise une forme explicite et fonctionne subr2() , mais subr2() utilise une forme différée et provoque un segfault. Cette question […]

Pourquoi imprime-t-il des symboles au hasard lorsqu’il dépasse 44 caractères

J’apprends le C grâce à la programmation d’un livre C: approche moderne. En ce moment, je vais faire des exercices sur les tableaux. L’un des exercices consiste à écrire un filtre qui imprime le message d’entrée différemment. Je me suis rendu jusqu’ici (voir le code ci-dessous), tout fonctionne correctement jusqu’à ce que le nombre de […]