Τα πάντα για την C

...του ubuntu και έργων ΕΛ/ΛΑΚ (Έργα-Οδηγοί-Προτάσεις)

Συντονιστής: konnn

Re: Τα πάντα για την C

Δημοσίευσηαπό Star_Light » 16 Φεβ 2012, 21:06

Nαι την διάβασα. Και ισως αρχισω να την χρησιμοποιώ και στην θέση της free
για να πουλήσω μούρη στην παρέα :lol: :lol: :lol:
Γνώσεις ⇛ Linux: Βασικές ┃ Προγραμματισμός: Δέν θέλω μεροκάματο , θέλω C και κακο θάνατο! ┃ Αγγλικά: Lower
Λειτουργικό ⇛ Ubuntu 10.10 σε Dual Boot με Windows 7
Προδιαγραφές ⇛ Επεξεργαστής : Intel(R) Core(TM) i3 CPU 540 @3.07Ghz (64bit)
RAM : Kingston 2GB
HDD : Coreshare 500GB
Κάρτα Γραφικών : Intel Corporation Core Processor Integrated Graphics Controller(rev 18) (prog-if 00 [VGA controller]) [8086:0042]
Star_Light
superbTUX
superbTUX
 
Δημοσιεύσεις: 2787
Εγγραφή: 01 Μάιος 2010, 21:07
Τοποθεσία: Αθήνα
IRC: Star_Light
Εκτύπωση

Re: Τα πάντα για την C

Δημοσίευσηαπό migf1 » 16 Φεβ 2012, 21:13

Star_Light έγραψε:Nαι την διάβασα. Και ισως αρχισω να την χρησιμοποιώ και στην θέση της free
για να πουλήσω μούρη στην παρέα :lol: :lol: :lol:

Ξαναδιάβασέ την, δεν έχει απολύτως καμία επαφή με την free() η realloc().
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

Re: Τα πάντα για την C

Δημοσίευσηαπό Star_Light » 16 Φεβ 2012, 21:19

migf1 έγραψε:
Ξαναδιάβασέ την, δεν έχει απολύτως καμία επαφή με την free() η realloc().


Mα δεν ειπα πως έχει. Εγω ειπα πως μπορεις να κάνεις την ιδια δουλειά
μεσω της realloc με 1ο ορισμα τον pointer που θες και 2ο το 0.
Γνώσεις ⇛ Linux: Βασικές ┃ Προγραμματισμός: Δέν θέλω μεροκάματο , θέλω C και κακο θάνατο! ┃ Αγγλικά: Lower
Λειτουργικό ⇛ Ubuntu 10.10 σε Dual Boot με Windows 7
Προδιαγραφές ⇛ Επεξεργαστής : Intel(R) Core(TM) i3 CPU 540 @3.07Ghz (64bit)
RAM : Kingston 2GB
HDD : Coreshare 500GB
Κάρτα Γραφικών : Intel Corporation Core Processor Integrated Graphics Controller(rev 18) (prog-if 00 [VGA controller]) [8086:0042]
Star_Light
superbTUX
superbTUX
 
Δημοσιεύσεις: 2787
Εγγραφή: 01 Μάιος 2010, 21:07
Τοποθεσία: Αθήνα
IRC: Star_Light
Εκτύπωση

Re: Τα πάντα για την C

Δημοσίευσηαπό migf1 » 16 Φεβ 2012, 21:30

Από που προκύπτει αυτό ρε συ Κώστα, θα με τρελάνεις τελείως; Εγώ στην τεκμηρίωση της realloc() διαβάζω...

έγραψε:
RETURN VALUE

Upon successful completion with a size not equal to 0, realloc() returns a pointer to the (possibly moved) allocated space. If size is 0, either a null pointer or a unique pointer that can be successfully passed to free() is returned. If there is not enough available memory, realloc() returns a null pointer and sets errno to [ENOMEM].
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

Re: Τα πάντα για την C

Δημοσίευσηαπό Star_Light » 16 Φεβ 2012, 21:35

ΣΤην σελιδα 289 του Γκιουρδα μαθετε την C σε 24 ωρες λεει

Οτι μπορεις να χρησιμοποιήσεις την realloc με τον παρακατω τροπο

realloc( ptr , 0 ) αυτο λεει.

επισης

Κώδικας: Επιλογή όλων


#include<stdio.h>
#include<string.h>
#include<stdlib.h>

int main()
{
char *s= NULL;
int len;

printf(" Give the length : " );
scanf("%d" , &len);

printf(" Give a string: ");
fgets( s , len , stdin );

s=calloc(len , sizeof(int));

if( !s )
printf(" Calloc Failed " );

puts( s );

free ( s );

return 0;
}



εδω μου πεταει segm fault μετα το length που δινω... μην αρχιζεις να φωναζεις παλι απλα δεν ξερω αλλο τροπο να το διαβασω.
Ο gdb μου δινει αυτο ->

Κώδικας: Επιλογή όλων
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /home/kostas/PROGRAMS/a.out...done.
(gdb) run
Starting program: /home/kostas/PROGRAMS/a.out
Give the length : 3

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff7adfaa1 in memcpy () from /lib/libc.so.6
(gdb)
Γνώσεις ⇛ Linux: Βασικές ┃ Προγραμματισμός: Δέν θέλω μεροκάματο , θέλω C και κακο θάνατο! ┃ Αγγλικά: Lower
Λειτουργικό ⇛ Ubuntu 10.10 σε Dual Boot με Windows 7
Προδιαγραφές ⇛ Επεξεργαστής : Intel(R) Core(TM) i3 CPU 540 @3.07Ghz (64bit)
RAM : Kingston 2GB
HDD : Coreshare 500GB
Κάρτα Γραφικών : Intel Corporation Core Processor Integrated Graphics Controller(rev 18) (prog-if 00 [VGA controller]) [8086:0042]
Star_Light
superbTUX
superbTUX
 
Δημοσιεύσεις: 2787
Εγγραφή: 01 Μάιος 2010, 21:07
Τοποθεσία: Αθήνα
IRC: Star_Light
Εκτύπωση

Re: Τα πάντα για την C

Δημοσίευσηαπό migf1 » 16 Φεβ 2012, 21:42

Αφού χρησιμοποιείς τον s (στην fgets() ) πριν τον κάνεις calloc() ;)

ΥΓ. Νομίζω έχουμε πει να το πετάξεις αυτό το βιβλίο! Κράτα αυτά τα 2 links:
1. http://pubs.opengroup.org/onlinepubs/7908799/xshix.html
2. http://pubs.opengroup.org/onlinepubs/00 ... tents.html
ή χρησιμοποίησε την εντολή: man στο τερματικό σου!
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

Re: Τα πάντα για την C

Δημοσίευσηαπό stamatiou » 16 Φεβ 2012, 21:46

Λοιπόν, επειδή έχουμε πλακωθεί εδώ στη δουλειά αυτή τη βδομάδα (ίσως και την επόμενη :D ) εγώ θα επανέλθω από παρασκευοσαββατοκύριακο για να κοιτάξω όλες τις σελίδες από ποστ που έχω χάσει :D
1Γνώσεις→Linux: Αρχάριος┃Προγραμματισμός:Αρχάριος┃Αγγλικά:Μέτριος
2Λειτουργικό→Arch Linxu 32bit
3Προδιαγραφές→2x AMD AthlonX2 DualCore QL-66 ‖ RAM 1751 MiB ‖ Hewlett-Packard 308C - Hewlett-Packard Compaq 615
4Κάρτες γραφικών:ATI RS780M/RS780MN [Radeon HD 3200 Graphics][1002:9612]
5Δίκτυα:eth0:Marvell 88E8042 PCI-E Fast Ethernet Controller [11ab:4357] (rev 10)⋮eth1: Broadcom BCM4312 802.11b/g LP-PHY [14e4:4315](rev 01)
Πρωσοπική Ιστοσελίδα: http://giwrg98.co.cc
Άβαταρ μέλους
stamatiou
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 947
Εγγραφή: 25 Ιουν 2010, 20:23
Εκτύπωση

Re: Τα πάντα για την C

Δημοσίευσηαπό migf1 » 16 Φεβ 2012, 21:48

Εδώ θα είμαστε :lol:
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

Re: Τα πάντα για την C

Δημοσίευσηαπό Star_Light » 16 Φεβ 2012, 22:27

stamatiou έγραψε:Λοιπόν, επειδή έχουμε πλακωθεί εδώ στη δουλειά αυτή τη βδομάδα (ίσως και την επόμενη :D ) εγώ θα επανέλθω από παρασκευοσαββατοκύριακο για να κοιτάξω όλες τις σελίδες από ποστ που έχω χάσει :D


Τρέχουμε και δεν φτάνουμε.... τρέχουμε να γλιτώσουμε !!!!

Εικόνα
Γνώσεις ⇛ Linux: Βασικές ┃ Προγραμματισμός: Δέν θέλω μεροκάματο , θέλω C και κακο θάνατο! ┃ Αγγλικά: Lower
Λειτουργικό ⇛ Ubuntu 10.10 σε Dual Boot με Windows 7
Προδιαγραφές ⇛ Επεξεργαστής : Intel(R) Core(TM) i3 CPU 540 @3.07Ghz (64bit)
RAM : Kingston 2GB
HDD : Coreshare 500GB
Κάρτα Γραφικών : Intel Corporation Core Processor Integrated Graphics Controller(rev 18) (prog-if 00 [VGA controller]) [8086:0042]
Star_Light
superbTUX
superbTUX
 
Δημοσιεύσεις: 2787
Εγγραφή: 01 Μάιος 2010, 21:07
Τοποθεσία: Αθήνα
IRC: Star_Light
Εκτύπωση

Re: Τα πάντα για την C

Δημοσίευσηαπό Star_Light » 16 Φεβ 2012, 22:50

btw αν έχω καταλάβει καλα η calloc δεσμεύει μνήμη σειριακά έτσι? διαδοχικές θέσεις μνήμης πχ.

Καλα αυτονοητο αυτο που λεω αλλα btw.
Γνώσεις ⇛ Linux: Βασικές ┃ Προγραμματισμός: Δέν θέλω μεροκάματο , θέλω C και κακο θάνατο! ┃ Αγγλικά: Lower
Λειτουργικό ⇛ Ubuntu 10.10 σε Dual Boot με Windows 7
Προδιαγραφές ⇛ Επεξεργαστής : Intel(R) Core(TM) i3 CPU 540 @3.07Ghz (64bit)
RAM : Kingston 2GB
HDD : Coreshare 500GB
Κάρτα Γραφικών : Intel Corporation Core Processor Integrated Graphics Controller(rev 18) (prog-if 00 [VGA controller]) [8086:0042]
Star_Light
superbTUX
superbTUX
 
Δημοσιεύσεις: 2787
Εγγραφή: 01 Μάιος 2010, 21:07
Τοποθεσία: Αθήνα
IRC: Star_Light
Εκτύπωση

ΠροηγούμενηΕπόμενο

Επιστροφή στο Ανάπτυξη Λογισμικού / Αλγόριθμοι