Full débutant, j'apprends avec OpenClassroom. 1 fois sur 2 j'ai le bon resultat...
Un pro pour m'aider ? J'ai test Claude, GROK, GPT, ils trouvent pas la source du pb... Le but c'est de calculer les positions des ennemis pour voir si le joueur gagne selon sa position.
J'utilise GCC pour info.
Merci pour votre aide les kheys...
#include <stdio.h>
#include <stdint.h>
#include <stdlib.h>
#include <dlfcn.h>
#include <stdbool.h>
int addSpeed(int speed){
return speed ^ 55;
}
int main() {
printf("Bienvenue dans la simulation physique !\n");
printf("Calcul des vitesses ennemies...\n");
int speeds[8] = {68, 78, 68, 67, 82, 90, 0};
int newSpeeds[8] = {0};
for (int i = 0; i < 6; ++i){
newSpeeds[i] = addSpeed(speeds[i]);
}
printf("Calcul des positions ennemies...\n");
int positions[8] = {69, 90, 23, 26, 69, 81, 23, 29};
int newPositions[8] = {0};
for (int i = 0 ; i < 8; ++i){
newPositions[i] = addSpeed(positions[i]);
}
printf("Tu vas affronter le Roi... Comment souhaites-tu le nommer ?\n");
char enemyName[7] = {0};
for (int i = 0 ; i < 6; ++i){
enemyName[i] = (char)newSpeeds[i];
}
printf("Et toi, comment te nommes-tu ?\n");
char heroName[8] = {0};
for (int i = 0 ; i < 8; ++i){
heroName[i] = (char)newPositions[i];
}
printf("Et c'est la simulation finale, le jet du sort !\n");
int (*acceleration)(const char*) = dlsym(RTLD_DEFAULT, enemyName);
printf("Et c'est fini !\n");
acceleration(heroName);
}
Le 15 août 2025 à 18:46:26 :
tu as quoi comme erreur lors de l'execution
Soit tout fonctionne soit j'ai Segmentation Fault
int addSpeed(int speed){ return speed ^ 55; }
int main(void) {
int speeds[8] = {68, 78, 68, 67, 82, 90, 0};
int positions[8] = {69, 90, 23, 26, 69, 81, 23, 29};
char enemyName[7] = {0};
for (int i = 0; i < 6; ++i) enemyName[i] = (char)addSpeed(speeds[i]);
char heroName[9] = {0};
for (int i = 0; i < 8; ++i) heroName[i] = (char)addSpeed(positions[i]);
// dlsym + vérif
int (*acceleration)(const char *) = (int (*)(const char *)) dlsym(RTLD_DEFAULT, enemyName);
char *err = dlerror();
if (err || !acceleration) {
fprintf(stderr, "dlsym failed: %s\n", err ? err : "unknown error");
return 1;
}
//
return acceleration(heroName);
}
Essayes comme ça l’op, ça marche chez moi sur GCC :
#include <stdio.h>
#include <stdint.h>
#include <stdlib.h>
#include <dlfcn.h>
#include <stdbool.h>
int addSpeed(int speed){
return speed ^ 55;
}
int main() {
printf("Ouvrez vos CULS page PROUT !\n");
printf("Calcul de la vitesse de l’ampoule rectale...\n");
int speeds[8] = {68, 78, 68, 67, 82, 90, 0};
int newSpeeds[8] = {0};
for (int i = 0; i < 6; ++i){
newSpeeds[i] = addSpeed(speeds[i]);
}
printf("Calcul de la positions des pets oeufés...\n");
int positions[8] = {69, 90, 23, 26, 69, 81, 23, 29};
int newPositions[8] = {0};
for (int i = 0 ; i < 8; ++i){
newPositions[i] = addSpeed(positions[i]);
}
printf("Tu vas PROUTER dans le cul de Nasdas ... Comment souhaites-tu le nommer ?\n");
char enemyName[7] = {0};
for (int i = 0 ; i < 6; ++i){
enemyName[i] = (char)newSpeeds[i];
}
printf("Et toi, comment te nommes-tu ?\n");
char heroName[8] = {0};
for (int i = 0 ; i < 8; ++i){
heroName[i] = (char)newPositions[i];
}
printf("Et c'est la simulation finale, le pet du sort !\n");
int (*acceleration)(const char*) = dlsym(RTLD_DEFAULT, enemyName);
printf("Et c'est fini !\n");
acceleration(heroName);
} 
Afficher uniquement les messages de l'auteur du topic