Η συνάρτηση dog (10 Μονάδες)
char *dog(const char *str1, const char *str2) {
size_t len1 = strlen(str1);
size_t len2 = strlen(str2);
char *result = malloc(len1 + len2 + 1);
if (!result) return NULL;
char *ptr = result;
while (*str1) *ptr++ = *str1++;
while (*str2) *ptr++ = *str2++;
*ptr = '\0';
return result;
}
Τι κάνει η συνάρτηση dog (μέχρι 15 λέξεις εξήγηση); Τι θα τυπώσουν οι παρακάτω εντολές;
char arg1[] = {71, 111, 111, 100, 32, 0};
char arg2[5] = {'j', 111, 98, '!', 0};
printf("%s\n", dog(arg1, arg2));
Παρακολουθήστε πού δείχνει ο ptr μετά από κάθε βρόχο και γιατί η malloc ζητά
len1 + len2 + 1 bytes. Για την έξοδο, μετατρέψτε τους αριθμούς σε χαρακτήρες με τον
πίνακα ASCII (το 0 είναι ο τερματικός χαρακτήρας και το 32 το κενό). Σκεφτείτε επίσης
τι γίνεται με τη μνήμη που επιστρέφει η dog σε αυτή την κλήση.
Αριθμός στον οδηγό: Α14.11
(στο κεφάλαιο) ·
Μόνιμο αναγνωριστικό: exam-2025-jan-q2 ·
Σύνδεσμος: https://progintro.github.io/study/questions/exams/exam-2025-jan-q2.html ·
Markdown (GitHub)