probleme de pointeur - C - Programmation
Marsh Posté le 17-01-2006 à 09:08:16
Si j'ai bonne mémoire, les tableau sont DéJà des pointeurs...
enlève les "&" dans les scanf!
ps: utilise les balise cpp... c'ets beaucoup plus joli et plus simple.
Je n'ai pas de compilateur ici, mais essaie ce code-ci:
Code :
|
Marsh Posté le 17-01-2006 à 09:10:24
cest ca :
#include <stdio.h>
char octet[8],mask[8],application;
int i;
main()
{
while (mask != "0" || mask !="1" )
{ printf("saisir le masque : \n" );
scanf(" &c", mask);
printf("saisir l'octet : \n " );
scanf(" &c", octet);
application="";
for (i=1;i<=8;i++);
{
if (octet[i]== mask[i])
{ application = application && '1' ;}
else
{ application = application && '0' ;}
} }
return 0;
}
ca marche pas,
Marsh Posté le 17-01-2006 à 09:13:23
avant de vous faire insulter http://mapage.noos.fr/emdel/inputs.htm
Marsh Posté le 17-01-2006 à 09:27:22
jarrive pas ! ! ! tan pis , merci quand meme... je chercherai une autre fois
Marsh Posté le 17-01-2006 à 09:51:01
ElDje a écrit : Si j'ai bonne mémoire, les tableau sont DéJà des pointeurs... |
C'est quoi alors un tableau de pointeurs ?
Marsh Posté le 17-01-2006 à 09:54:40
je crois que l'erreur est facile à corriger !!!
les indices des tableaux commencent à 0
donc :
char tab[8];
crée un tableau dont les indices vont de 0 à 7, et non de 1 à 8
Marsh Posté le 17-01-2006 à 10:03:47
shreck a écrit : cest ca :
|
pas étonnant ... le formatage pour scanf est invalide ...
tu prévois 8 caractères pour ton masque et ton adresse, qu'est-ce que tu comptes avoir dedans ?
mask != "1" -> ce n'est pas comme ca qu'on compare des chaines en C (on utilise plutôt strcmp par exemple)
ensuite, tu confonds les valeurs numériques avec les caractères (application && '1')
au vu de tout ca, je te conseille vivement de te plonger dans un bon livre pour apprendre le C ...
Marsh Posté le 17-01-2006 à 10:06:14
shreck a écrit : salut a tous, alors voila je suis en train de faire un petit programme en C (je débute) |
Enormément de fautes. Mes commentaires (-ed-). Pose des questions si tu ne comprends pas.
|
Marsh Posté le 17-01-2006 à 11:40:57
shreck a écrit : salut a tous, alors voila je suis en train de faire un petit programme en C (je débute)
|
Hum... si je lis bien ton algo (c'est pas évident car il me faut interpréter tes intentions en fonctions des instructions "aléatoires" que tu as tapées) alors celui-ci implique qu'on saisisse seulement un octet de l'adresse (qui en fait quand-même 4) et que la saisie se fasse en binaire...
Commence par bien lire les bouquins de C. Ensuite, pour ton exercice, intéresse-toi à l'opérateur mathématique "&" qui travaille sur chaque bit de ses opérandes =>
Ex: 6 & 5 = 110(2) & 101(2) = 100(2) = 4
Marsh Posté le 17-01-2006 à 08:51:03
salut a tous, alors voila je suis en train de faire un petit programme en C (je débute)
le but de ce programme et dappliquer un pasque de sous réseau a une adresse
voila mon source :
#include <stdio.h>
char octet[8],mask[8],application;
int i;
main()
{
printf("saisir le masque : \n" );
scanf(" %s", &mask);
printf("saisir l'octet : \n " );
scanf(" %s", &octet);
application="";
for (i=1;i<=8;i++);
{
if (octet[i]=mask[i])
{ application = application && "1" ;}
else
{ application = application && "0" ;}
}
return 0;
}
et quand je compile, ca me fait cette erreur : " affectation transforme un pointeur en entier sans transtypage"
je comprend pas pourquoi, et les pointeurs je connais pas trop
dc si quelqu'un aurai la gentillesse de mexpliquer svp...
merci