Articles of tableaux

Initialiser un tableau 2D de taille inconnue

J’ai un tableau 2D de caractères, par exemple, char aList[numSsortingngs][maxLength] . idéalement, pendant l’exécution du programme, je veux pouvoir modifier le contenu d’une liste, c’est-à-dire append, modifier ou supprimer des entrées. Comme une liste est susceptible de changer, je ne souhaite pas avoir à recomstackr mon programme après chaque modification pour modifier une liste. Je […]

Compréhension des pointeurs avec malloc et gratuitement

Les pointeurs sont très difficiles en C. Pour beaucoup de gens, il est difficile à comprendre, alors pour bien comprendre, j’ai écrit le code suivant: #include #include int main(int argc, char *argv[]) { int *p; // pointer -> will be dynamic allocated int *a; // array -> will be dynamic allocated // print before allocate […]

La fonction qui crée et retourne un tableau pose des problèmes

J’ai essayé d’écrire une fonction qui renvoie un tableau aléatoire de couleurs de pixels. Ainsi, lorsque j’appelle randomPalette(i) , la fonction crée un tableau aléatoire de i couleurs. Ci-dessous sont mes codes. Il dit erreur au random[colors] que l’expression doit avoir une valeur constante. Je ne sais pas pourquoi. Comment le réparer? pixel* randomPalette(int colors){ […]

Erreur C: l’expression doit avoir une valeur constante

J’écris du code incorporé pour faire l’interface avec un périphérique externe via SPI. Le dispositif a plusieurs registres de longueur variable et pour aider à garder les choses droites, j’ai défini la structure suivante typedef struct { uint16_t Signed :1; // Register is signed or unsigned uint16_t CommLengthBytes :3; // The width of the register […]

* (a ++) donne une erreur mais pas * (a + 1) ?? où est un nom de tableau?

Dans le code suivant: void main() { char a[]={1,5,3,4,5,6}; printf(“%d\n”,*(a++)); //line gives error: wrong type argument to increment printf(“%d\n”,*(a+1)); } Quelle est la différence entre la ligne 4 et la ligne 5. Je ne reçois aucune erreur ni aucun avertissement concernant la ligne 5.

Expériences utilisant sizeof avec des tableaux et des pointeurs

Pour le programme: #include int main(void) { int (*a)[2]; int b[5]; printf(“sizeof(int) : %zu\n”, sizeof(int)); printf(“sizeof(int*) : %zu\n”, sizeof(int*)); printf(“sizeof(b) : %zu\n”,sizeof(b)); printf(“sizeof((int*)b) : %zu\n”,sizeof((int*)b)); printf(“sizeof(&b[0]) : %zu\n”,sizeof(&b[0])); printf(“sizeof(a) : %zu\n”,sizeof(a)); printf(“sizeof(a[0]) : %zu\n”,sizeof(a[0])); printf(“sizeof(a[1]) : %zu\n”,sizeof(a[1])); return 0; } La sortie est: sizeof(int) : 4 -> Fact 1 sizeof(int*) : 8 -> Fact 2 […]

Passer un tableau multidimensionnel en C / C ++

Pourquoi en C / C ++, il est nécessaire pour un paramètre func qui reçoit un MD arr à la taille de tous les sous-tableaux / dimensions? here (PDF): Il est dit que la seule différence entre MD arrs est que “le compilateur se souvient de chaque dimension imaginaire” mais lorsque je viole ces dimensions, […]

Comment déclarer un tableau de longueur variable dans Visual Studio C89 après un autre code

Je comprends dans VS que toutes les variables doivent être déclarées en haut d’un bloc, mais si je veux un VLA, c’est-à-dire. si je voulais faire quelque chose comme ça: int result = runalgorithm(); int vla[result]; le code ci-dessus n’est pas valide, car vla doit être déclaré en haut. Quelle est la bonne solution pour […]

problème d’initialisation grand double tableau

Question idiote d’un nouveau programmeur C … Je reçois une erreur de segmentation dans le code suivant: #include int main(void) { double YRaw[4000000]={0}; return 0; } En utilisant GDB, j’obtiens le commentaire suivant: Program received signal EXC_BAD_ACCESS, Could not access memory. Reason: KERN_PROTECTION_FAILURE at address: 0x00007fff5dd7b148 0x0000000100000f24 in main () at talk2me.c:18 18 double YRaw[4000000]={0}; […]

Division de tableaux – Quel est le meilleur moyen de diviser deux nombres stockés dans un tableau?

J’ai deux tableaux (dividende, diviseur): dividend[] = {1,2,0,9,8,7,5,6,6}; divisor[] = {9,8}; J’ai besoin du résultat (dividende / diviseur) en tant que: quotient[] = {1,2,3,4,5,6,7}; Je l’ai fait en utilisant la soustraction de tableau: soustrayez le diviseur du dividende jusqu’à ce que le dividende soit égal ou inférieur à 0, divisez le quotient par 1, mais […]