Votre code est correct Cela va fonctionner .... Mais vous devez faire particulièrement attention à vérifier les conditions aux limites. S'il vous plaît regarder à travers le code.
void myFunc(int *vp) {
vp[5] = 30;
}
int main() {
int v[5] = {1,2,3,4,5};
int a = 10;
printf("Value of a before fun call %d\n", a);
myFunc(v);
printf("Value of a before fun call %d\n", a);
return 0;
}
De même
void myFunc(int *vp) {
vp[5] = 30;
myFunc2(vp);
}
void myFunc2(int *vp) {
vp[6] = 30;
}
int main() {
int v[5] = {1,2,3,4,5};
int a = 10;
printf("Value of a before fun call %d\n", a);
myFunc(v);
printf("Value of a before fun call %d\n", a);
return 0;
}
Cela se traduira par une erreur de segmentation en raison de la pile Curruption.Puisque les variables locales sont en pile.
Demandez-vous parce que vous avez une erreur, ou demandez-vous si cela fonctionne de manière cohérente? – Ryan
Essayez-le. Exécuter. Peut-être que ça fonctionne. De toute façon, vous apprenez quelque chose. :) – Bucket
Oui! Je semble fonctionner. Quand je l'exécute sur VS2012 tout semble bien. Mais quand je l'exécute sous Linux, j'ai une erreur de segmentation. Je ne sais pas exactement si c'est le problème. J'ai eu une erreur de segmentation après 4 heures de calcul. J'ai demandé parce que je me doutais que cela pourrait être le problème. –