Möchte C Lernen

Für sonstige Unterhaltungen, welche nicht direkt mit Lazarus zu tun haben

Möchte C Lernen

Beitragvon Maik81ftl » 9. Apr 2011, 15:18 Möchte C Lernen

Moin Moin,

Habe heute meine CD endlich bekommen und mit C anzufangen. scheidere aber immer an dem Fehler... :

orginal aus dem Handbuch dazu ist der code wie folgt.
Code: Alles auswählen
void main(void)
{
}


Im selbigen Buch wird auch geschieben
Sollte Ihr Compiler einen Fehler melden, dann müssen Sie den Functionskopf int main() verwenden. Bei älteren Compilern, die die AnsiNorm nicht vollständig unterstützen, kann dann eine Warnung erscheinen, die darauf...
In diesem Fall müssen Ihre main-functionen als letzten Befehl immer return(0) besitzen.
alles wollte ich nicht abtippeln :|

was der Autor damit sagen will, kann ich mir schon denken, Habe dahingehend auch die zeilen umgeschrieben und erhalte denne via Terminal folgende Meldung.

Code: Alles auswählen
/tmp/ccdGh9Qi.o:(.eh_frame+0x12): undefined reference to `__gxx_personality_v0'
collect2: ld returned 1 exit status


Der code dazu ist dieser
Code: Alles auswählen
int main()
{
return(0);
}


zugegeben auch hier wird mal im dunkeln gelassen linux-Für-Alle
Ubuntu 10.04 LTS ist meine Heimat. Lazarus ist meine Sprache :D und der Kreis Segeberg meine LIEBE :D
Maik81ftl
 
Beiträge: 619
Registriert: 9. Mär 2011, 16:34
Wohnort: seit 01.06.2011 in Wahlstedt
OS, Lazarus, FPC: Ubuntu10.04 LTS (L 0.9.31.0 FPC 2.4.4) | 
CPU-Target: 64Bit
Nach oben

Beitragvon Bora4d » 9. Apr 2011, 15:39 Re: Möchte C Lernen

Ich habe früher (>10 Jahre her) in C und C++ Programmiert. Ich sage wenn du Pascal kannst dann kannst du auch C. Die unterschiede sind sehr gering.
Für mich ist C und Pascal sind wie Geschwister wobei C unerzogenes freches Kind ist, dass man ständig von der Polizei abholen muß.

In Internet auch auf Freepascalseiten gibt's Dokumente die unterschiede zwischen Pascal und C zeigen, lies die mal durch dann kannst du vieles sparen.
Die Dokumente sind nicht irgendwelche Lobhymnen von C oder Pascal Fanatikern sondern die zeigen dir Syntaxunterschiede.
Bora4d
 
Beiträge: 290
Registriert: 24. Dez 2007, 13:14
OS, Lazarus, FPC: WinXP-Pro-Sp3, Xubuntu 12.04, (Laz 1.1-SVN Mai2012, FPC 2.6.1 / 2.6.0-Linux) | 
CPU-Target: AMD64X2
Nach oben

Beitragvon MAC » 9. Apr 2011, 16:06 Re: Möchte C Lernen

so, ich kann zwar kein c aber ich kenn mich da ein bischen aus.
In C gibt es keine Proceduren , nur funktionen - diese müssen immer einen Rückgabe wert haben ( deswegen wurde ja int main() vorgeschlagen. --> int = integer = rückgabewert) Wenn Void davor steht heißt das soviel wie nichts, entspricht also eher einer procedure.

statt dem
Code: Alles auswählen
void main(void)
würde ich eher
Code: Alles auswählen
void main()
schreiben
Wow, man kann hier im Forum sogar C code hervorheben --> bööse :D


return ist sowas wie result.

Zum beispiel aus
Code: Alles auswählen
function a(i:integer):integer;
begin
result := i+1;
end;


wird ungefär sowas (wie gesagt ich kann kein C :) )
Code: Alles auswählen
int einefunktion(i: int) // ka ob doppelpunkt...
{
int  einevariable = 0;
einevaruable = i++;
return einevariable; // einevariable ist also der rückgabewert - ich glabe aber im gegensatzt zu pascal kann man mit reutn nicht wie mit result rechnen... (also man muss den umweg über eine variable machen)
}
Code: Alles auswählen
Signatur := nil;
MAC
 
Beiträge: 770
Registriert: 21. Feb 2009, 13:46
OS, Lazarus, FPC: Windows 7 (L 1.3 Built 43666 FPC 2.6.2) | 
CPU-Target: 32Bit
Nach oben

Beitragvon Maik81ftl » 9. Apr 2011, 17:28 Re: Möchte C Lernen

Bora4d hat geschrieben:Ich habe früher (>10 Jahre her) in C und C++ Programmiert. Ich sage wenn du Pascal kannst dann kannst du auch C. Die unterschiede sind sehr gering.
Für mich ist C und Pascal sind wie Geschwister wobei C unerzogenes freches Kind ist, dass man ständig von der Polizei abholen muß.

In Internet auch auf Freepascalseiten gibt's Dokumente die unterschiede zwischen Pascal und C zeigen, lies die mal durch dann kannst du vieles sparen.
Die Dokumente sind nicht irgendwelche Lobhymnen von C oder Pascal Fanatikern sondern die zeigen dir Syntaxunterschiede.


dessen bin ich mir durchaus bewust, Aber mal ehrlich, wenn man schon ein buch hat "C-Lernen" und das von grund auf macht. denne läst man Pascal in meinem fall aus dem spiel.

MAC hat geschrieben:so, ich kann zwar kein c aber ich kenn mich da ein bischen aus.
In C gibt es keine Proceduren , nur funktionen - diese müssen immer einen Rückgabe wert haben ( deswegen wurde ja int main() vorgeschlagen. --> int = integer = rückgabewert) Wenn Void davor steht heißt das soviel wie nichts, entspricht also eher einer procedure.

statt dem
Code: Alles auswählen
void main(void)
würde ich eher
Code: Alles auswählen
void main()
schreiben
Wow, man kann hier im Forum sogar C code hervorheben --> bööse :D


return ist sowas wie result.

Zum beispiel aus
Code: Alles auswählen
function a(i:integer):integer;
begin
result := i+1;
end;


wird ungefär sowas (wie gesagt ich kann kein C :) )
Code: Alles auswählen
int einefunktion(i: int) // ka ob doppelpunkt...
{
int  einevariable = 0;
einevaruable = i++;
return einevariable; // einevariable ist also der rückgabewert - ich glabe aber im gegensatzt zu pascal kann man mit reutn nicht wie mit result rechnen... (also man muss den umweg über eine variable machen)
}


MAC ich hatte 200 nur 4 wochen a 2x2h C. also ehrlich kann man des unter ulk verbuchen. :D

Ne auf was ich hier überhaupt anspielen will. wenn man das schon alles sch schön schreibt, wie es im Buch steht, und dennoch ein fehler kommt. steht nirgend's, was der fehler zu sagen hat.

OK! ^^ wie ich gerade in einem anderem Forum gelesen halbe g++ statt gcc
Ubuntu 10.04 LTS ist meine Heimat. Lazarus ist meine Sprache :D und der Kreis Segeberg meine LIEBE :D
Maik81ftl
 
Beiträge: 619
Registriert: 9. Mär 2011, 16:34
Wohnort: seit 01.06.2011 in Wahlstedt
OS, Lazarus, FPC: Ubuntu10.04 LTS (L 0.9.31.0 FPC 2.4.4) | 
CPU-Target: 64Bit
Nach oben

Beitragvon Keifor » 9. Apr 2011, 17:47 Re: Möchte C Lernen

Maik81ftl hat geschrieben:
Code: Alles auswählen
/tmp/ccdGh9Qi.o:(.eh_frame+0x12): undefined reference to `__gxx_personality_v0'
collect2: ld returned 1 exit status



Google weiß Bescheid. ;)
Sieht so aus als wenn dein "C" Compiler eigentlich ein "C++" Compiler ist (oder jedenfalls versucht hat das ganze als c++ zu verkaufen).

Beispiel:
Das Programm main.c
Code: Alles auswählen
int main( int argc, char *argv[]){
  return(0);
}


Compiled mit "C" (gcc c part)
Code: Alles auswählen
$ gcc -omain main.c
$ ./main


Nun der Trick... umbenennen von main.c in main.cpp
Code: Alles auswählen
$ mv main.c main.cpp
$ gcc -omain main.cpp
/tmp/ccWCyzM0.o:(.eh_frame+0x12): undefined reference to `__gxx_personality_v0`
collect2: ld gab 1 als Ende-Status zurück
$ g++ -omain main.cpp
$ ./main

gcc geht nicht, das wird als c++ übersetzt und versucht als C zu linken, allerdings werden beim Übersetzen schon Abhängigkeiten für libstdc++ hinzugefügt.
g++ geht weil der linker noch die c++ Abhängigkeiten mitbekommt. Aber das ganze ist nun C++ :mrgreen:

Und nun der Trick.. (Datei umbenennen geht natürlich auch)
Code: Alles auswählen
gcc -x c -omain main.cpp

-x c macht klar das es als C übersetzt werden soll.
Keifor
 
Beiträge: 31
Registriert: 28. Aug 2010, 14:15
OS, Lazarus, FPC: pc-linux-gnu - Funtoo stable, L trunk, FPC trunk | 
CPU-Target: i686/x86_64
Nach oben

Beitragvon Korkenkrone » 9. Apr 2011, 19:48 Re: Möchte C Lernen

MAC hat geschrieben:wird ungefär sowas (wie gesagt ich kann kein C :) )
Code: Alles auswählen
int einefunktion(i: int) // ka ob doppelpunkt...
{
int  einevariable = 0;
einevaruable = i++;
return einevariable; // einevariable ist also der rückgabewert - ich glabe aber im gegensatzt zu pascal kann man mit reutn nicht wie mit result rechnen... (also man muss den umweg über eine variable machen)
}


"return" ist in C keine Variable, sondern eine Anweisung, wie der Name schon andeutet. In Pascal wird "Result" beim Verlassen der Funktion zurückgegeben, in C wird die Funktion mittels "return" verlassen. Der Ausdruck hinter "return" wird zurück gegeben. Die Funktion würde also in C eher so aussehen:
Code: Alles auswählen
int eine_funktion(i: int) {
  return i+1;
}


i++ ist zudem ein Inkrement, wie die Inc- Prozedur in Pascal, wobei man beim "wunderschönen" C natürlich noch ganz dringend beachten muss, dass "i++" ein etwas seltsames Verhalten an den Tag legen kann und sich von "++i", was auch ein Inkrement ist, unterscheidet. Ich mag C nicht...
Korkenkrone
 
Beiträge: 33
Registriert: 18. Sep 2010, 19:33
OS, Lazarus, FPC: OpenSUSE 11.3 (L 0.9.28.2 Beta FPC 2.2.4) | 
CPU-Target: x86-64
Nach oben

Beitragvon carli » 9. Apr 2011, 21:07 Re: Möchte C Lernen

@Topic: Wie sieht denn dein Compiler-Aufruf aus?
Ansonsten empfehle ich dir einfach, ein "-lstdc++" an ld-Zeile dranzuhängen.


@C:
Ratet mal, was folgender C-Code bewirkt:
Code: Alles auswählen
while(*b++=*a++);
carli
 
Beiträge: 660
Registriert: 9. Jan 2010, 17:32
OS, Lazarus, FPC: Linux 2.6.x, SVN-Lazarus, FPC 2.4.0-2 | 
CPU-Target: 64Bit
Nach oben

Beitragvon MAC » 10. Apr 2011, 12:04 Re: Möchte C Lernen

if (++1 = 2) gibt glaub ich wahr aus weil erst addiert wird und dann geprüft wird und
if (1++ = 2) müsste false ausgeben ...
Die 1 steht da nur weil damit das einfach verständlich ist :)


Ich schätze mal das gibt ne Endlosschleife ???
oder ist * eine Pointer anweisung ???

Ich hab da keihen ahnugn ich hatte bis jetzt insgesammt 4 Stunden C ...
Code: Alles auswählen
Signatur := nil;
MAC
 
Beiträge: 770
Registriert: 21. Feb 2009, 13:46
OS, Lazarus, FPC: Windows 7 (L 1.3 Built 43666 FPC 2.6.2) | 
CPU-Target: 32Bit
Nach oben

Beitragvon Maik81ftl » 10. Apr 2011, 12:19 Re: Möchte C Lernen

Hier scheinen ja einige zu sein, die sich mit C auskennen. :D da kann ich auch gleich mal Forumfremd Frage :D

Habe eine Function, welche eine Zeichenkette zurückübergeben soll.

weiß auch, das void keine rückgabe und int eine Integer rückgabe machen, wie kann ich dem programm nun sagen, das der die Zeichekette zurückgegen soll? wenn ich mich da nun mal net irre mit einem char?!

Die function sehen erste nur zum Test wie folgt aus.

Code: Alles auswählen
#include <stdio.h>
#include <string.h>
 
 
char *Testfkt(const char *sValue)
{
//  int count;
  char *zeichen;
//   for (count=0; count<=7; count++)
//   zeichen[count]==+sValue[count];
  strcpy(zeichen, sValue);   /* hier erhalte ich den Speichzugriffsfehler */
  return(zeichen);
}
 
int main()
{
  char *text;
  strcpy(text, Testfkt("Hallo Otto"));
  printf("Hallo Welt : ---> \n", text);
}


Programm läuft anscheinen auch soweit. nur erhalte ich einen Speicherzugriffsfehler.
Ubuntu 10.04 LTS ist meine Heimat. Lazarus ist meine Sprache :D und der Kreis Segeberg meine LIEBE :D
Maik81ftl
 
Beiträge: 619
Registriert: 9. Mär 2011, 16:34
Wohnort: seit 01.06.2011 in Wahlstedt
OS, Lazarus, FPC: Ubuntu10.04 LTS (L 0.9.31.0 FPC 2.4.4) | 
CPU-Target: 64Bit
Nach oben

Beitragvon Korkenkrone » 10. Apr 2011, 13:03 Re: Möchte C Lernen

Du ertsellst mit "char *zeichen;" einen Pointer auf einen char. Der Pointer ist eine Adresse, die auf einen Speicherbereich zeigt. Da du dem Pointer keine Adresse zuweist, versucht er den String "irgendwohin" (undefiniert!) zu kopieren. Das geht auf jeden Fall schief, da du nichtmal einen Speicherbereich angefordert hast, an dem der String zufällig korrekt landen könnte.

Du musst also erst mit malloc() Speicher anfordern, der groß genug ist, den String zu halten.

Da der Speicher beim Verlassen der Funktion nicht wieder freigegeben wird (wäre ja auch doof, dann wäre der string wieder weg), ist er auch nach Verlassen der Funktion noch verfügbar. Weist du den Pointer nicht neu zu, dann hast du ein Speicherleck, da du keinen Zugriff mehr auf den in der Funktion allozierten Speicher hast.

In der Main-Funktion nutzt du also nicht strcpy, sondern weist dem Pointer "text" den Pointer zu, der von der Funktion zurück gegeben wird.

Code: Alles auswählen
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
 
 
char *Testfkt(const char *sValue) {
  /* malloc fordert Speicher an und gibt die Adresse des Speichers zurück */
  char *zeichen = malloc(100 * sizeof (char));
 
  /* Jetzt kann der String kopiert werden, da "zeichen" eine Adresse hat, an der
     genügend Speicher reserviert ist. */

  strcpy(zeichen, sValue);
  return zeichen;
}
 
int main() {
  /* Die Adresse an der der in der Funktion reservierte Speicher mit dem kopierten
     String liegt, wird hier deinem Pointer Text zugewiesen. */

  char *text = Testfkt("Hallo Otto");
 
  printf("Hallo Welt : ---> %s\n", text);
  return EXIT_SUCCESS;
}


Wenn du es ganz sauber willst, musst du den Speicher natürlich auch wieder frei geben. Außerdem wäre es eventuell besser keine feste Menge Speicher anzufordern, sondern die, die du brauchst um den String zu halten.
Korkenkrone
 
Beiträge: 33
Registriert: 18. Sep 2010, 19:33
OS, Lazarus, FPC: OpenSUSE 11.3 (L 0.9.28.2 Beta FPC 2.2.4) | 
CPU-Target: x86-64
Nach oben

Beitragvon Maik81ftl » 10. Apr 2011, 13:33 Re: Möchte C Lernen

Korkenkrone hat geschrieben:Du ertsellst mit "char *zeichen;" einen Pointer auf einen char. Der Pointer ist eine Adresse, die auf einen Speicherbereich zeigt. Da du dem Pointer keine Adresse zuweist, versucht er den String "irgendwohin" (undefiniert!) zu kopieren. Das geht auf jeden Fall schief, da du nichtmal einen Speicherbereich angefordert hast, an dem der String zufällig korrekt landen könnte.

Du musst also erst mit malloc() Speicher anfordern, der groß genug ist, den String zu halten.

Da der Speicher beim Verlassen der Funktion nicht wieder freigegeben wird (wäre ja auch doof, dann wäre der string wieder weg), ist er auch nach Verlassen der Funktion noch verfügbar. Weist du den Pointer nicht neu zu, dann hast du ein Speicherleck, da du keinen Zugriff mehr auf den in der Funktion allozierten Speicher hast.

In der Main-Funktion nutzt du also nicht strcpy, sondern weist dem Pointer "text" den Pointer zu, der von der Funktion zurück gegeben wird.

Code: Alles auswählen
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
 
 
char *Testfkt(const char *sValue) {
  /* malloc fordert Speicher an und gibt die Adresse des Speichers zurück */
  char *zeichen = malloc(100 * sizeof (char));
 
  /* Jetzt kann der String kopiert werden, da "zeichen" eine Adresse hat, an der
     genügend Speicher reserviert ist. */

  strcpy(zeichen, sValue);
  return zeichen;
}
 
int main() {
  /* Die Adresse an der der in der Funktion reservierte Speicher mit dem kopierten
     String liegt, wird hier deinem Pointer Text zugewiesen. */

  char *text = Testfkt("Hallo Otto");
 
  printf("Hallo Welt : ---> %s\n", text);
  return EXIT_SUCCESS;
}


Wenn du es ganz sauber willst, musst du den Speicher natürlich auch wieder frei geben. Außerdem wäre es eventuell besser keine feste Menge Speicher anzufordern, sondern die, die du brauchst um den String zu halten.


Speicherleak vermeiden??? Suber hinweis! in C versuch ich das gleich durchzusetzen. Wenn ich das Analog zu fpc vermute sicherlich der Befehl free();
Was allersings die Speichergröße angeht, die sollte schon Variabel bleiben, da die const durch eine Externe eingabe ersetzt werden soll.
Ubuntu 10.04 LTS ist meine Heimat. Lazarus ist meine Sprache :D und der Kreis Segeberg meine LIEBE :D
Maik81ftl
 
Beiträge: 619
Registriert: 9. Mär 2011, 16:34
Wohnort: seit 01.06.2011 in Wahlstedt
OS, Lazarus, FPC: Ubuntu10.04 LTS (L 0.9.31.0 FPC 2.4.4) | 
CPU-Target: 64Bit
Nach oben

Beitragvon Korkenkrone » 10. Apr 2011, 13:51 Re: Möchte C Lernen

Maik81ftl hat geschrieben:Speicherleak vermeiden??? Suber hinweis! in C versuch ich das gleich durchzusetzen. Wenn ich das Analog zu fpc vermute sicherlich der Befehl free();
Was allersings die Speichergröße angeht, die sollte schon Variabel bleiben, da die const durch eine Externe eingabe ersetzt werden soll.

Das solltest du überall versuchen gleich durchzusetzen. Auch in Pascal! Gewöhne es dir gar nicht erst an, so etwas zu ignorieren. Zum herumprobieren ist es OK, und in dem Fall räumt das Betriebssystem den Speicher schon auf, da der Prozess direkt nach dem letzten Gebrauch von dem angeforderten Speicher beendet wird. Solltest du aber in deinem Buch bei Speicherverwaltung angelangt sein, musst du auf so etwas schon genau achten. Das Gleiche gilt für Pufferüberläufe, die entstehen, wenn "Hallo Otto" auch andere Werte annehmen kann.

Du kannst ja mal versuchen die Funktionen "free" und "strlen" vernünftig einzusetzen, um den Code in diese Richtung zu verbessern. Ein gutes Tool für die Überwachung des Speichers in C ist übrigens Valgrind, das sollte in den Ubuntu Repositories verfügbar sein, wenn du es nicht sogar schon mit irgendwelchen C-Entwicklungspatterns zusammen installiert hast.
Korkenkrone
 
Beiträge: 33
Registriert: 18. Sep 2010, 19:33
OS, Lazarus, FPC: OpenSUSE 11.3 (L 0.9.28.2 Beta FPC 2.2.4) | 
CPU-Target: x86-64
Nach oben

Beitragvon carli » 10. Apr 2011, 14:31 Re: Möchte C Lernen

Korkenkrone hat geschrieben:Das solltest du überall versuchen gleich durchzusetzen. Auch in Pascal! Gewöhne es dir gar nicht erst an, so etwas zu ignorieren. Zum herumprobieren ist es OK, und in dem Fall räumt das Betriebssystem den Speicher schon auf, da der Prozess direkt nach dem letzten Gebrauch von dem angeforderten Speicher beendet wird. Solltest du aber in deinem Buch bei Speicherverwaltung angelangt sein, musst du auf so etwas schon genau achten. Das Gleiche gilt für Pufferüberläufe, die entstehen, wenn "Hallo Otto" auch andere Werte annehmen kann.


Als wir im Studium C gelernt haben, hat der Tutor ausdrücklich gesagt "Für nicht freigegebenen Speicher gibt es keinen Punktabzug."
carli
 
Beiträge: 660
Registriert: 9. Jan 2010, 17:32
OS, Lazarus, FPC: Linux 2.6.x, SVN-Lazarus, FPC 2.4.0-2 | 
CPU-Target: 64Bit
Nach oben

Beitragvon Maik81ftl » 10. Apr 2011, 16:17 Re: Möchte C Lernen

Korkenkrone hat geschrieben:
Maik81ftl hat geschrieben:Speicherleak vermeiden??? Suber hinweis! in C versuch ich das gleich durchzusetzen. Wenn ich das Analog zu fpc vermute sicherlich der Befehl free();
Was allersings die Speichergröße angeht, die sollte schon Variabel bleiben, da die const durch eine Externe eingabe ersetzt werden soll.

Das solltest du überall versuchen gleich durchzusetzen. Auch in Pascal! Gewöhne es dir gar nicht erst an, so etwas zu ignorieren. Zum herumprobieren ist es OK, und in dem Fall räumt das Betriebssystem den Speicher schon auf, da der Prozess direkt nach dem letzten Gebrauch von dem angeforderten Speicher beendet wird. Solltest du aber in deinem Buch bei Speicherverwaltung angelangt sein, musst du auf so etwas schon genau achten. Das Gleiche gilt für Pufferüberläufe, die entstehen, wenn "Hallo Otto" auch andere Werte annehmen kann.

Du kannst ja mal versuchen die Funktionen "free" und "strlen" vernünftig einzusetzen, um den Code in diese Richtung zu verbessern. Ein gutes Tool für die Überwachung des Speichers in C ist übrigens Valgrind, das sollte in den Ubuntu Repositories verfügbar sein, wenn du es nicht sogar schon mit irgendwelchen C-Entwicklungspatterns zusammen installiert hast.


Danke für den WInk mit der Hauswand :D

carli hat geschrieben:
Korkenkrone hat geschrieben:Das solltest du überall versuchen gleich durchzusetzen. Auch in Pascal! Gewöhne es dir gar nicht erst an, so etwas zu ignorieren. Zum herumprobieren ist es OK, und in dem Fall räumt das Betriebssystem den Speicher schon auf, da der Prozess direkt nach dem letzten Gebrauch von dem angeforderten Speicher beendet wird. Solltest du aber in deinem Buch bei Speicherverwaltung angelangt sein, musst du auf so etwas schon genau achten. Das Gleiche gilt für Pufferüberläufe, die entstehen, wenn "Hallo Otto" auch andere Werte annehmen kann.


Als wir im Studium C gelernt haben, hat der Tutor ausdrücklich gesagt "Für nicht freigegebenen Speicher gibt es keinen Punktabzug."


nur zu doof, das wir damal mit TP angefangen habe. in nachhinnein gesagt vielleicht auch ein fehler von der Berufsschule.
Ubuntu 10.04 LTS ist meine Heimat. Lazarus ist meine Sprache :D und der Kreis Segeberg meine LIEBE :D
Maik81ftl
 
Beiträge: 619
Registriert: 9. Mär 2011, 16:34
Wohnort: seit 01.06.2011 in Wahlstedt
OS, Lazarus, FPC: Ubuntu10.04 LTS (L 0.9.31.0 FPC 2.4.4) | 
CPU-Target: 64Bit
Nach oben

Beitragvon m.fuchs » 11. Apr 2011, 11:35 Re: Möchte C Lernen

carli hat geschrieben:Als wir im Studium C gelernt haben, hat der Tutor ausdrücklich gesagt "Für nicht freigegebenen Speicher gibt es keinen Punktabzug."


Ernsthaft? Wenn schon an den Unis kein sauberes Arbeiten gelehrt wird, muss man sich natürlich nicht wundern.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de
m.fuchs
Lazarusforum e. V.
 
Beiträge: 2140
Registriert: 22. Sep 2006, 18:32
Wohnort: Berlin
OS, Lazarus, FPC: Winux (Lazarus 2.0, FPC 3.0.4) | 
CPU-Target: x86, x64, arm
Nach oben

» Weitere Beiträge siehe nächste Seite »
Nächste

Zurück zu Dies und Das



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste

porpoises-institution
accuracy-worried