Δημοσιεύτηκε: 30 Ιαν 2012, 23:19
migf1 έγραψε:Βασικά αυτό αν δουλεύει, μάλλον κατά τύχη δουλεύει
Bαριέμαι να το κοιτάξω λεπτομερώς τώρα γιατί γράφω την τεκμηρίωση της βιβλιοθήκης, αλλά π.χ. τα p και p3 μέσα στις συναρτήσεις single_p() και double_p() τα χρησιμοποιείς αδήλωτα, κι απλώς τυχαίνει η C όταν δεν δηλώνεις τύπο στις μεταβλητές να τις θεωρεί int
Btw, θα σου πρότεινα να προτιμάς ασκήσεις που έχουν κάποια επαφή με πραγματικές εφαρμογές. Π.χ. φτιάξε μια συνάρτηση που θα κάνει swap 2 πίνακες ακεραίων
Το εκανα αυτο που λες αλλα με δεικτες.
- Κώδικας: Επιλογή όλων
#include <stdio.h>
#include <stdlib.h>
void swap(int *x , int *y);
int main()
{
int x,y;
int *p_x , *p_y ; // pointer p_x and p_y declaration
p_x=&x;
p_y=&y;
printf("Dwste to x: \n");
scanf("%d",&x);
printf("Dwste to y: \n");
scanf("%d",&y);
swap(p_x, p_y); // function call by pass!
printf("The value of x is : %d \n",x);
printf("The value of y is : %d \n",y);
return 0;
}
//-----------------------------------------------
void swap(int *x, int *y)
{
int *tmp;
tmp=calloc(1,sizeof(int)); // one element
*tmp=*x;
*x=*y;
*y=*tmp;
return;
}
//--------------------------------------------------------------------------------------------------------------------------------------------------