ChristosFis Δημοσ. 5 Ιουνίου 2022 Share Δημοσ. 5 Ιουνίου 2022 (επεξεργασμένο) Kαλησπέρα θα μπορούσε κάποιος να βόηθησει στο θέμα αυτό . Η γλωσσα προγραμματισμου είναι C Επεξ/σία 5 Ιουνίου 2022 από ChristosFis Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
DrKo Δημοσ. 5 Ιουνίου 2022 Share Δημοσ. 5 Ιουνίου 2022 (επεξεργασμένο) Η σωστή απάντηση είναι πως η ερώτηση είναι ημιτελής. Η standard C δεν το επιτρέπει αλλά ο GNU C compiler το επιτρέπει. Επίσης, δεν υπάρχει ερώτημα Γ. Γενικά παρατηρείται ένα θεματάκι με το πόσο ακριβής είναι ο γραπτός λόγος που χρησιμοποιείς και που διαβάζεις. Επεξ/σία 5 Ιουνίου 2022 από DrKo Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
cvb~ Δημοσ. 5 Ιουνίου 2022 Share Δημοσ. 5 Ιουνίου 2022 Καλησπέρα. Ρίξε μια ματιά σ' αυτό https://stackoverflow.com/questions/3523145/pointer-arithmetic-for-void-pointer-in-c . Ίσως σε βοηθήσει. Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
ChristosFis Δημοσ. 5 Ιουνίου 2022 Μέλος Share Δημοσ. 5 Ιουνίου 2022 (επεξεργασμένο) 33 λεπτά πριν, DrKo είπε Η σωστή απάντηση είναι πως η ερώτηση είναι ημιτελής. Η standard C δεν το επιτρέπει αλλά ο GNU C compiler το επιτρέπει. Επίσης, δεν υπάρχει ερώτημα Γ. Γενικά παρατηρείται ένα θεματάκι με το πόσο ακριβής είναι ο γραπτός λόγος που χρησιμοποιείς και που διαβάζεις. δικό μου λαθος εννοουσα ολο το θέμα αυτο αν μπορούσε να με βοηθήσει κάποιος. Το θέμα βασίζεται στο κομμάτι του πολυμορφισμού στην ευελιξία και στην μετατροπή τύπων Επεξ/σία 5 Ιουνίου 2022 από ChristosFis Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
newnick Δημοσ. 8 Ιουνίου 2022 Share Δημοσ. 8 Ιουνίου 2022 Google is your friend...... https://stackoverflow.com/questions/68071964/add-2-void-pointer-arrays-in-c Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
Επισκέπτης Δημοσ. 8 Ιουνίου 2022 Share Δημοσ. 8 Ιουνίου 2022 (επεξεργασμένο) Μπορείς να κάνεις πατέντα με macros και να φιάξεις κάτι σαν τα templates της C++. Δεν νομίζω ότι σε πανεπιστήμιο έχει ασχοληθεί κανείς με macros οπότε ξέχασε το. Αλλιώς γράφεις όλες τις πιθανές εκδοχές της συνάρτησης σου π.χ. add_int(...), add_float(...), add_double(...) για int, float, double κλπ. Μάλλον στην εκφώνηση σε περιορίζει στο πώς θα ονομάσεις την συνάρτηση, οπότε ξέχασε το και αυτό. Το μόνο που μου έρχεται στο μυαλό και δέν μου πολυαρέσει κιόλας σαν λύση είναι αυτό: #include <stdio.h> #include <stdlib.h> #include <string.h> void add(const char *type, void *a, void *b, void *c, int size) { if (strcmp(type, "int") == 0) { for (int i = 0; i < size; i++) { ((int *)c)[i] = ((int *)a)[i] + ((int *)b)[i]; } } else if (strcmp(type, "float") == 0) { for (int i = 0; i < size; i++) { ((float *)c)[i] = ((float *)a)[i] + ((float *)b)[i]; } } } int main() { int *a = malloc(4 * sizeof(int)); int *b = malloc(4 * sizeof(int)); int *c = malloc(4 * sizeof(int)); for (int i = 0; i < 4; i++) { a[i] = i; b[i] = i; c[i] = 0; } add("int", a, b, c, 4); for (int i = 0; i < 4; i++) { printf("%d ", c[i]); } free(a); free(b); free(c); return 0; } Επεξ/σία 8 Ιουνίου 2022 από xorz57 Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
ChristosFis Δημοσ. 10 Ιουνίου 2022 Μέλος Share Δημοσ. 10 Ιουνίου 2022 Στις 8/6/2022 στις 6:17 ΜΜ, xorz57 είπε Μπορείς να κάνεις πατέντα με macros και να φιάξεις κάτι σαν τα templates της C++. Δεν νομίζω ότι σε πανεπιστήμιο έχει ασχοληθεί κανείς με macros οπότε ξέχασε το. Αλλιώς γράφεις όλες τις πιθανές εκδοχές της συνάρτησης σου π.χ. add_int(...), add_float(...), add_double(...) για int, float, double κλπ. Μάλλον στην εκφώνηση σε περιορίζει στο πώς θα ονομάσεις την συνάρτηση, οπότε ξέχασε το και αυτό. Το μόνο που μου έρχεται στο μυαλό και δέν μου πολυαρέσει κιόλας σαν λύση είναι αυτό: #include <stdio.h> #include <stdlib.h> #include <string.h> void add(const char *type, void *a, void *b, void *c, int size) { if (strcmp(type, "int") == 0) { for (int i = 0; i < size; i++) { ((int *)c)[i] = ((int *)a)[i] + ((int *)b)[i]; } } else if (strcmp(type, "float") == 0) { for (int i = 0; i < size; i++) { ((float *)c)[i] = ((float *)a)[i] + ((float *)b)[i]; } } } int main() { int *a = malloc(4 * sizeof(int)); int *b = malloc(4 * sizeof(int)); int *c = malloc(4 * sizeof(int)); for (int i = 0; i < 4; i++) { a[i] = i; b[i] = i; c[i] = 0; } add("int", a, b, c, 4); for (int i = 0; i < 4; i++) { printf("%d ", c[i]); } free(a); free(b); free(c); return 0; } εν τελει βγήκε με την τεχνική της qsort και αναλογως τι εχουμε int ,float ,struct καναμε τα καταλληλα casting Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα