Je suis nouveau en C, et des pointeurs dans ce sens, donc de l'aide serait formidable. Mon programme a planté plusieurs fois lorsque j'essaie d'exécuter ce code.
Ma méthode punkt_paa_linje renvoie un entier, au lieu d'une chaîne, à cause des pointeurs que je suppose. J'ai une compréhension très vague de pointeurs, donc une explication serait très appréciéLe programme ne cesse de planter
char punkt_paa_linje(int linje_1[3], int linje_2[3], int punkt[3])
{
int i;
double t1;
double t2;
double t3;
for(i = 0; i < 3; i = i + 1){
double t = (punkt[i]-linje_1[i])/linje_2[i];
if(i == 0){
t1 = t;
} else if (i == 1){
t2 = t;
} else if (i == 2){
t3 = t;
}
}
if(t1 == t2 && t2 == t3){
return "true";
} else {
return "false";
}
}
Et quand je l'appelle la fonction, il retourne 36
int main()
{
int et[] = {1,2,3};
int to[] = {4,5,6};
int tre[] = {7,8,9};
printf("%d\n", punkt_paa_linje(et, to, tre));
return 0;
}
EDIT: La raison pour laquelle je ne l'ai pas insérer une message d'erreur est parce qu'il n'y en a aucun
Quelles sont les erreurs? Cela serait utile. – Carcigenicate
'return" true ";' ce n'est pas un 'char' ou un' int'. compiler avec des avertissements sur nous parlerons plus tard. –
https://ericlippert.com/2014/03/05/how-to-debug-small-programs/ et https://stackoverflow.com/questions/2069367/how-to-debug-using-gdb – Yunnosch