J'essaie de passer un pointeur sur un tableau dans une fonction et de le renvoyer. Le problème est qu'après une initialisation correcte, la fonction renvoie un pointeur NULL. Quelqu'un peut-il me dire, quel est le problème avec ma logique?Comment passer un pointeur sur un tableau dans une fonction, le modifier et revenir correctement?
Voici ma fonction, où tableau est déclaré:
void main()
{
int errCode;
float *pol1, *pol2;
pol1 = pol2 = NULL;
errCode = inputPol("A", pol1);
if (errCode != 0)
{
return;
}
// using pol1 array
c = getchar();
}
Et voici la fonction avec l'initialisation:
int inputPol(char* c, float *pol)
{
pol= (float *) calloc(13, sizeof(float));
while(TRUE)
{
// While smth happens
pol[i] = 42;
i++;
};
}
Vous devez augmenter le niveau d'avertissement de votre compilateur (ou faire attention à vos avertissements) afin de ne pas écrire des fonctions non-vides sans les instructions 'return'. : -/ – HostileFork
Est le code que vous affichez le code complet que vous exécutez? Je vois et boucle infinie dans la fonction inputPol et vous ne retournez pas le code d'erreur. –
p.s. vous n'avez pas besoin de lancer le résultat de 'calloc' en C – newacct