C snippet for mabe

This commit is contained in:
2025-08-29 09:13:33 +02:00
commit 59d70fb1be

70
prout.c Normal file
View File

@@ -0,0 +1,70 @@
#include <stdio.h>
#include <stdlib.h>
struct structure {
int a;
int b;
};
struct structure_mixte {
char a;
int b;
};
int main(){
// simple
int val = 15;
int* ad = &val;
*ad = 16;
printf("%d\n", val);
// structures
printf("taille : %d\n", sizeof(struct structure));
struct structure* s = malloc(sizeof(struct structure));
s->a = 17;
s->b = 18;
ad = (int*) s;
printf(" ad %d\n", *ad);
ad = ad + 1;
printf("ad +1 %d\n", *ad);
// structures mixtes
printf("taille : %d\n", sizeof(struct structure_mixte));
struct structure_mixte* m = malloc(sizeof(struct structure_mixte));
m->a = 'a';
m->b = 19;
ad = (char*) m;
printf("ad %c\n", *(char*)ad);
ad = (char*) ad + 1;
printf("ad +1 %d\n", *ad);
ad = (char*) ad + 3;
printf("ad +3 %d\n", *ad);
ad = (int*) m;
*ad = 20;
printf("%d\n", *ad);
// Jouer avec les adresses
int* a = malloc(4);
*a = 1;
int* b = &a;
**( int** ) b = 2;
printf("%d\n", *a);
free(( void* ) * ( void** ) b);
// comprendre les tableaux
a = malloc(8);
*a = 5;
b = a + 1;
*b = 6;
printf("%d\n", *a);
printf("%d\n", *b);
// comprendre le déférencement
char *c = (char*) a + 1;
*c = 'a';
printf("%d\n", *a);
printf("%c\n", *c);
*a = 5;
printf("%d\n", *a);
free(a);
}