Bonjour,

Envoyé par
glKabuto
Je voudrais savoir comment je pourrais faire pour caster deux structures similaires comme sur l'exemple ci-dessous:
Comme tu le dis toi même en castant !
Le transtypage directe ne semble pas passer :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| #include <stdio.h>
struct S
{
int a;
float b;
char c;
};
struct T
{
int a;
float b;
char c;
};
int main (void)
{
struct S s;
struct T t;
s.a = 0;
s.b = 1.0;
s.c = 'a';
t = (struct T)s;
printf ("%d %f %c\n", t.a, t.b, t.c);
return 0;
} |
main.c:26: error: conversion to non-scalar type requested
Il faut passer par un pointeur :
1 2 3 4 5
| [...]
struct T *t;
[...]
t = (struct T *)&s;
[...] |
Ou si tu ne veux pas utiliser un pointeur :
1 2 3 4 5
| [...]
struct T t;
[...]
t = *(struct T *)&s;
[...] |
Partager