Comment peut-on avoir une fonction retournant un pointeur vers un tableau et quelles sont les choses générales qu'il faut garder à l'esprit en faisant cela?Comment déclarer une fonction renvoyant un pointeur sur un tableau?
Répondre
int (*foo(void))[4];
déclare foo
en fonction sans paramètre qui renvoie un pointeur vers un tableau 4 de int
.
Par exemple:
int (*p)[4];
p = foo();
Généralement, une fonction renvoie un pointeur à l'élément zéro d'un tableau.
int * f() {
// ...
L'astuce est - qui est responsable du stockage des éléments, de la fonction ou de l'appelant?
How can one have a function returning a pointer to an array
Cette fonction renvoie un pointeur sur un tableau:
char * create_array() {
char * array = malloc(ARRAY_SIZE, sizeof(char));
return array;
}
Cependant, si elle est pas strictement nécessaire, vous devriez éviter cette pratique. Par exemple, l'exemple précédent est et non une bonne pratique car elle alloue de la mémoire dans le tas, mais délègue à une autre fonction la responsabilité de la libérer.
'void' n'est pas un pointeur sur un tableau, ni' char * '. –
Et non, retourner un pointeur vers la mémoire de 'malloc() ated n'est pas une mauvaise pratique du tout. Inversement, c'est assez commun et idiomatique. –
Oui, je sais! J'ai oublié d'écrire le type de retour: D –
- 1. Comment déclarer un pointeur sur un pointeur vers un tableau?
- 2. Comment déclarer un pointeur de fonction __stdcall
- 3. Comment déclarer un pointeur (octet ^)?
- 4. Comment déclarer une fonction qui renvoie un pointeur de fonction?
- 5. Déréférencer fonction renvoyant un pointeur sur une structure en C
- 6. Comment passer « pointeur vers un pointeur » à une fonction qui attend « pointeur sur un tableau »
- 7. Comment passer un pointeur sur une fonction
- 8. renvoyant un pointeur sur l'activité parent
- 9. Comment déclarer une fonction renvoie un pointeur de fonction pointeur de retour int [3]
- 10. Dans TypeScript, comment déclarer un tableau de fonctions acceptant une chaîne et renvoyant une chaîne?
- 11. Fonction renvoyant un pointeur vers un objet dans un tableau 2d
- 12. Définition d'une fonction renvoyant un tableau
- 13. Passage d'un pointeur sur un tableau char vers une fonction
- 14. Comment déclarer un pointeur C++ en C#
- 15. Pointeur de fonction pointant sur une fonction qui prend un pointeur de fonction
- 16. Fonction VBA Excel 2010 renvoyant un tableau
- 17. Comment déclarer un pointeur char externe?
- 18. Comment puis-je déclarer un pointeur à une variable constante
- 19. Comment déclarer un pointeur vide en C#
- 20. Comment déclarer un tableau global une fois
- 21. Comment déclarer un membre comme un pointeur vers une fonction externe "C"?
- 22. comprendre appeler un pointeur sur une fonction
- 23. renvoyant un pointeur d'une fonction de membre d'une classe
- 24. incrémenter par un pointeur sur un tableau de pointeur
- 25. Comment puis-je passer un pointeur vers un pointeur d'un tableau UInt16 à une fonction Marshalled?
- 26. Renvoyer un pointeur sur un tableau
- 27. pointeur sur un tableau 2d
- 28. pointeur sur un tableau 3d
- 29. Go: Appeler un pointeur passe fonction tableau
- 30. Fonction renvoyant le pointeur vers la structure
Habituellement, on évite cela; la déclaration est poilue! –
Alloue-t-il le tableau? – Jiminion
@JonathanLeffler Ah, non, 'int (* func (args)) []' est trivial, n'est-ce pas? : P –