Bonjour,
est-il possible d'empêcher une structure d'être copiable en C99 ? Mon problème est que j'ai une structure basique de tableau dynamique qui ressemble à ceci :
et que si quelqu'un a le malheur d'écrire plus tard:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 struct DynamicArray { int size; int capacity; size_t eltsize; void* data; } void DynamicArray_Init(struct DynamicArray* array, size_t eltSize); void DynamicArray_Add(struct DynamicArray* array, void* value);
Alors dans ce cas là, il se peut que la structure A soir invalidée à cause des opérations de realloc potentielles dans le Add.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 struct DynamicArray arrayA; DynamicArray_Init(&arrayA, sizeof(int)); int i = 3; struct DynamicArray arrayB = arrayA; DynamicArray_Add(&arrayB, &i);
J'imagine que la seule solution est de rendre la structure opaque, mais c'est un peu dommage vu que du coup ça n'est plus possible de l'allouer de manière automatique -_-
Merci d'avance.
Partager