Δημοσιεύτηκε: 30 Αύγ 2011, 15:52
migf1 sorry αλλα δεν εχω βαλει το n ακομη επειδη θελω περισσοτερο να μεινω σε αυτο το σημειο και να καταλαβω επακριβως πως δουλευει ο αλγοριθμος. Φυσικα με δεικτες. Αλλιως για μενα τουλαχιστον δεν εχει νοημα. Ο κωδικας ειναι ο εξης :
Τα λάθη που έκανα ηταν τα εξής :
1. Ουσιαστικα σε προηγουμενο κωδικα αυξανα μονο τον ptr2 και οχι τον ptr1 συνεπως ο ptr2 μαλλον αντεγραφε στον ptr1 μονο το πρωτο στοιχειο.
2. Δεν εσωζα το αποτελεσμα σε εναν *save (μυριζομουν οτι υπαρχει προβλημα με την τιμη επιστροφης αλλα δεν ηξερα τι ακριβως να κανω ωστε να το διορθωσω)
Φυσικα υπάρχουν αρκετα ερωτηματα. Καταρχην με μπερδευει το *save = ptr1; ο *save ειναι ορισμενος σαν δεικτης κατι που σημαινει οτι περιμενει μια δεξια τιμη.... πως παιρνει αριστερη? δηλαδη την τιμη του ptr1 τον οποιο εχω βάλει να δείχνει στον s1 πινακα.
Kαι μετα γιατι επιστρεφουμε σκετο save? Το save δειχνει στην αρχικη διευθυνση της συμβολοσειρας η οποια ειναι σειριακα στην μνημη? Αλλα και παλι δεν θα επιστρεψει διεύθυνση? Πως εκτυπωνεται τελικα.......
- Κώδικας: Επιλογή όλων
#include<stdio.h>
char *f_cp(char *ptr1 , char *ptr2);
int main()
{
char s1[5]="Kost";
char s2[5]="Cost";
char *ptr1;
char *ptr2;
ptr1=s1;
ptr2=s2;
printf("%s",f_cp(ptr1,ptr2));
return 0;
}
char *f_cp(char *ptr1 , char *ptr2)
{
char *save=ptr1;
while(*ptr2!='\0')
{
*ptr1=*ptr2;
ptr2++;
ptr1++;
}
return save;
}
Τα λάθη που έκανα ηταν τα εξής :
1. Ουσιαστικα σε προηγουμενο κωδικα αυξανα μονο τον ptr2 και οχι τον ptr1 συνεπως ο ptr2 μαλλον αντεγραφε στον ptr1 μονο το πρωτο στοιχειο.
2. Δεν εσωζα το αποτελεσμα σε εναν *save (μυριζομουν οτι υπαρχει προβλημα με την τιμη επιστροφης αλλα δεν ηξερα τι ακριβως να κανω ωστε να το διορθωσω)
Φυσικα υπάρχουν αρκετα ερωτηματα. Καταρχην με μπερδευει το *save = ptr1; ο *save ειναι ορισμενος σαν δεικτης κατι που σημαινει οτι περιμενει μια δεξια τιμη.... πως παιρνει αριστερη? δηλαδη την τιμη του ptr1 τον οποιο εχω βάλει να δείχνει στον s1 πινακα.
Kαι μετα γιατι επιστρεφουμε σκετο save? Το save δειχνει στην αρχικη διευθυνση της συμβολοσειρας η οποια ειναι σειριακα στην μνημη? Αλλα και παλι δεν θα επιστρεψει διεύθυνση? Πως εκτυπωνεται τελικα.......