Bashar schrieb:
Also muß man einfach nur aus argv[0] alles ab dem letzten Backslash abschneiden. Vielleicht sollte sich worst_case mal wieder melden ...
Ist auch unter Windows nicht eindeutig.
Generell steht in argv[0] nur, wie das Programm aufgerufen wurde. Klickt man im Explorer auf eine exe, ist dass der komplette Pfad, startet man's aus ner Dosbox (ohne Pfadangabe) steht der Pfad auch nicht drin.
Will man unter Windows wirklich den korrekten Pfad haben, brauch man GetModuleFilename().
.oO( wie oft hab ich das eigentlich schon gepostet... )
Ich habe eine Gleichung
(x-c)^2 + (y-d)^2 = r^2
und
(x_eins -c)^2 +(y_eins-d)^2 =r^2
ich habe alles ausser c und d
und die muss ich ausrechnen.
Wie kann ich das per C programmieren?
size_t ist ein unsigned Typ, der je nach Platform so groß sein sollte, dass man damit Array-größen etc. speichern kann.
Das Problem bei dem Code ist, wenn du eine Zahl eingibst, die größer als der Maximal Wert von size_t ist, erzeugst du einen Integeroverflow und kannst du Speicher allokieren, der kleine ist als das zu kopierende Array. In dem Fall endet das einfach in einem Segfault, aber wenn dir so etwas in Server oder Suid-Root Anwendungen passiert, kannst du zB. so einen DOS Angriff durchführen oder wenn du den Buffer manipulieren kannst einen Shellcode in das System einbringen.
#include <stdio.h>
int kleinster(int *zahlen, int i);
int main()
{
int zahlen[10];
int i=0;
printf("Bitte Zahlen eingeben (max. 10; Ende mit 0): \n");
while (i<10)
{
scanf("%d", &zahlen[i]);
if (zahlen[i]==0)
break;
i++;
}
printf("Die kleinste der eingegebenen Zahlen ist %d\n", kleinste(zahlen,i));
}
int kleinste(int *zahlen, int i)
{
int j;
int a=zahlen[0];
for (j=1; j<i; j++)
if (zahlen[j]<a)
a=zahlen[j];
return a;
}
Hey PAD,
dank Dir!!! Ich glaube, damit habe ich schon mal einen guten Überblick, wie das in C so läuft, zumal ich im Petzold noch ein bisschen was über die .dll's gelesen habe. Den Rest kann ich dann von Java und php zum großen Teil übernehmen.
Super Forum
Gruß
Sponsi
Danke, jetzt verstehe ich auch wieso ich schon oft davon gelesen habe, dass in
den Header-Files die Prototypen sind, aber nie was über die ganzen Funktionen.
Dass da in der FAQ ein Eintrag ist wusste ich nicht, mir fiel das heute Morgen ein
und ich hatte noch kurz Zeit um den PC anzumachen
exterminans <at> web.de
Vielen Dank
Habe mir den Parser im Buch und das Kapitel nochmal gründlich angeschaut und ich
denke ich bin dem Verständnis etwas Näher gekommen. Aber dein Parser würde mich
doch interressieren, da er total anderst aufgebaut ist so wie ich es aus dem
Code-Snippet ersehen kann.
Tag,
Naja in C++ gibtz den modifizierer für den ostream.
In C geht das mit einem Formatzeichen für printf.
printf("int 0x%x long 0x%lx\n",intwert,longwert);