J'essaie d'exécuter le code suivant, mais il me donne des données parasites sur l'accès aux valeurs du tableau struct. Pourquoi cela se passe-t-il et comment puis-je résoudre ce problème? Une fois que je déplace la partie malloc vers la fonction principale, cela semble fonctionner. Mais je veux garder le malloc dans une fonction séparée.Données de vidage imprimées lors de l'accès au tableau struct
#include <cstdlib>
#include <limits>
#include <iostream>
using namespace std;
/*
*
*/
typedef struct{
float x;
float y;
} CoordinateData;
void tester(CoordinateData* cd_data){
cd_data = (CoordinateData*)malloc(5*sizeof(CoordinateData));
CoordinateData data = {41.2525,74.0744};
*cd_data = data;
}
int main(int argc, char** argv) {
CoordinateData* cd_data;
tester(cd_data);
std::cout << (*cd_data).x << "::" << (*cd_data).y << std::endl;
}
La sortie je reçois est 2.42126e-39 :: - 1.51015e-05 Le résultat attendu est 41,2525 :: 74,0744
Par curiosité, pourquoi êtes-vous allouer de la mémoire pour les 5 'CoordinateData'? – juanchopanza
juste aléatoire. aucune raison – user949110