Apres quelques temps a faire du shockwave, entre paranthese tres
fonctionnel, mais trop facile et qu'est ce qu'on ce fait 'chier'
d'ailleur!, paranthese fermee, je retourne au 'C' est j'ai besoin de
temps en temps de me rafraichir la memoire.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Saïd
Pat :
Bonjour,
Apres quelques temps a faire du shockwave, entre paranthese tres fonctionnel, mais trop facile et qu'est ce qu'on ce fait 'chier' d'ailleur!, paranthese fermee, je retourne au 'C' est j'ai besoin de temps en temps de me rafraichir la memoire.
int *ess;
ess=(int*)NewPtr(1); *(ess)=(int)NewPtr(13);
ess, est bien un pointeur de pointeur!
Il y a une question? Sinon, ess est un pointeur sur int et rien d'autre. Et si NewPtr renvoie un pointeur sur une une case memoire qui contient la valeur entiere de son parametre, alors *ess vaut successivement 1 puis l'adresse ou est stocke un int valant 13 (la valeur 1 inscrite a la case memoire pointee par ess apres la premiere affectation a ete ecrasee par la position en memoire de la case contenant 13 et allouee (si NewPtr est bien ecrit) par le second NewPtr).
-- Saïd. "Bless this, O Lord, that with it thou mayst blow thine enemies to tiny bits, in thy mercy." In the Book of Armaments, Chapter 4. (The Holy Hand Grenade)
Pat :
Bonjour,
Apres quelques temps a faire du shockwave, entre paranthese tres
fonctionnel, mais trop facile et qu'est ce qu'on ce fait 'chier'
d'ailleur!, paranthese fermee, je retourne au 'C' est j'ai besoin de
temps en temps de me rafraichir la memoire.
int *ess;
ess=(int*)NewPtr(1);
*(ess)=(int)NewPtr(13);
ess, est bien un pointeur de pointeur!
Il y a une question? Sinon, ess est un pointeur sur int et rien d'autre. Et
si NewPtr renvoie un pointeur sur une une case memoire qui contient la valeur
entiere de son parametre, alors *ess vaut successivement 1 puis l'adresse ou est
stocke un int valant 13 (la valeur 1 inscrite a la case memoire pointee par
ess apres la premiere affectation a ete ecrasee par la position en memoire
de la case contenant 13 et allouee (si NewPtr est bien ecrit) par le second
NewPtr).
--
Saïd.
"Bless this, O Lord, that with it thou mayst blow thine enemies to tiny
bits, in thy mercy."
In the Book of Armaments, Chapter 4. (The Holy Hand Grenade)
Apres quelques temps a faire du shockwave, entre paranthese tres fonctionnel, mais trop facile et qu'est ce qu'on ce fait 'chier' d'ailleur!, paranthese fermee, je retourne au 'C' est j'ai besoin de temps en temps de me rafraichir la memoire.
int *ess;
ess=(int*)NewPtr(1); *(ess)=(int)NewPtr(13);
ess, est bien un pointeur de pointeur!
Il y a une question? Sinon, ess est un pointeur sur int et rien d'autre. Et si NewPtr renvoie un pointeur sur une une case memoire qui contient la valeur entiere de son parametre, alors *ess vaut successivement 1 puis l'adresse ou est stocke un int valant 13 (la valeur 1 inscrite a la case memoire pointee par ess apres la premiere affectation a ete ecrasee par la position en memoire de la case contenant 13 et allouee (si NewPtr est bien ecrit) par le second NewPtr).
-- Saïd. "Bless this, O Lord, that with it thou mayst blow thine enemies to tiny bits, in thy mercy." In the Book of Armaments, Chapter 4. (The Holy Hand Grenade)
Patrick Stadelmann
In article , Saïd wrote:
Pat :
Bonjour,
Apres quelques temps a faire du shockwave, entre paranthese tres fonctionnel, mais trop facile et qu'est ce qu'on ce fait 'chier' d'ailleur!, paranthese fermee, je retourne au 'C' est j'ai besoin de temps en temps de me rafraichir la memoire.
int *ess;
ess=(int*)NewPtr(1); *(ess)=(int)NewPtr(13);
ess, est bien un pointeur de pointeur!
Il y a une question? Sinon, ess est un pointeur sur int et rien d'autre. Et si NewPtr renvoie un pointeur sur une une case memoire qui contient la valeur entiere de son parametre, alors *ess vaut successivement 1 puis l'adresse ou est stocke un int valant 13 (la valeur 1 inscrite a la case memoire pointee par ess apres la premiere affectation a ete ecrasee par la position en memoire de la case contenant 13 et allouee (si NewPtr est bien ecrit) par le second NewPtr).
Quand tu appelles NewPtr( N ), ça alloue un bloc de N octets. N n'est pas la valeur qui sera stockée. Donc là il y a un problème car ess pointe vers un bloc de 1 octets, insuffisant pour stocker l'adresse retournée par le 2e NewPtr.
Patrick -- Patrick Stadelmann
In article <slrndeevb8.27i.said@dhcp132-231.enst.fr>,
Saïd <said@brian.lan> wrote:
Pat :
Bonjour,
Apres quelques temps a faire du shockwave, entre paranthese tres
fonctionnel, mais trop facile et qu'est ce qu'on ce fait 'chier'
d'ailleur!, paranthese fermee, je retourne au 'C' est j'ai besoin de
temps en temps de me rafraichir la memoire.
int *ess;
ess=(int*)NewPtr(1);
*(ess)=(int)NewPtr(13);
ess, est bien un pointeur de pointeur!
Il y a une question? Sinon, ess est un pointeur sur int et rien d'autre. Et
si NewPtr renvoie un pointeur sur une une case memoire qui contient la valeur
entiere de son parametre, alors *ess vaut successivement 1 puis l'adresse ou
est
stocke un int valant 13 (la valeur 1 inscrite a la case memoire pointee par
ess apres la premiere affectation a ete ecrasee par la position en memoire
de la case contenant 13 et allouee (si NewPtr est bien ecrit) par le second
NewPtr).
Quand tu appelles NewPtr( N ), ça alloue un bloc de N octets. N n'est
pas la valeur qui sera stockée. Donc là il y a un problème car ess
pointe vers un bloc de 1 octets, insuffisant pour stocker l'adresse
retournée par le 2e NewPtr.
Patrick
--
Patrick Stadelmann <Patrick.Stadelmann@unine.ch>
Apres quelques temps a faire du shockwave, entre paranthese tres fonctionnel, mais trop facile et qu'est ce qu'on ce fait 'chier' d'ailleur!, paranthese fermee, je retourne au 'C' est j'ai besoin de temps en temps de me rafraichir la memoire.
int *ess;
ess=(int*)NewPtr(1); *(ess)=(int)NewPtr(13);
ess, est bien un pointeur de pointeur!
Il y a une question? Sinon, ess est un pointeur sur int et rien d'autre. Et si NewPtr renvoie un pointeur sur une une case memoire qui contient la valeur entiere de son parametre, alors *ess vaut successivement 1 puis l'adresse ou est stocke un int valant 13 (la valeur 1 inscrite a la case memoire pointee par ess apres la premiere affectation a ete ecrasee par la position en memoire de la case contenant 13 et allouee (si NewPtr est bien ecrit) par le second NewPtr).
Quand tu appelles NewPtr( N ), ça alloue un bloc de N octets. N n'est pas la valeur qui sera stockée. Donc là il y a un problème car ess pointe vers un bloc de 1 octets, insuffisant pour stocker l'adresse retournée par le 2e NewPtr.
Patrick -- Patrick Stadelmann
Saïd
Patrick Stadelmann :
Quand tu appelles NewPtr( N ), ça alloue un bloc de N octets. N n'est pas la valeur qui sera stockée. Donc là il y a un problème car ess pointe vers un bloc de 1 octets, insuffisant pour stocker l'adresse retournée par le 2e NewPtr.
Mais c'est du C, ce NewPtr? C'est du objective C? En tout cas je ne savais pas que ca existait, je croyais qu'il avait invente le mot pour raccourcir le programme.
-- Saïd. "Bless this, O Lord, that with it thou mayst blow thine enemies to tiny bits, in thy mercy." In the Book of Armaments, Chapter 4. (The Holy Hand Grenade)
Patrick Stadelmann :
Quand tu appelles NewPtr( N ), ça alloue un bloc de N octets. N n'est
pas la valeur qui sera stockée. Donc là il y a un problème car ess
pointe vers un bloc de 1 octets, insuffisant pour stocker l'adresse
retournée par le 2e NewPtr.
Mais c'est du C, ce NewPtr? C'est du objective C? En tout cas je ne savais
pas que ca existait, je croyais qu'il avait invente le mot pour raccourcir
le programme.
--
Saïd.
"Bless this, O Lord, that with it thou mayst blow thine enemies to tiny
bits, in thy mercy."
In the Book of Armaments, Chapter 4. (The Holy Hand Grenade)
Quand tu appelles NewPtr( N ), ça alloue un bloc de N octets. N n'est pas la valeur qui sera stockée. Donc là il y a un problème car ess pointe vers un bloc de 1 octets, insuffisant pour stocker l'adresse retournée par le 2e NewPtr.
Mais c'est du C, ce NewPtr? C'est du objective C? En tout cas je ne savais pas que ca existait, je croyais qu'il avait invente le mot pour raccourcir le programme.
-- Saïd. "Bless this, O Lord, that with it thou mayst blow thine enemies to tiny bits, in thy mercy." In the Book of Armaments, Chapter 4. (The Holy Hand Grenade)
Patrick Stadelmann
In article , Saïd wrote:
Mais c'est du C, ce NewPtr? C'est du objective C? En tout cas je ne savais pas que ca existait, je croyais qu'il avait invente le mot pour raccourcir le programme.
NewPtr est une fonction de l'API de Mac OS. Sous Mac OS X, elle est toujours disponible dans Carbon.
Patrick -- Patrick Stadelmann
In article <slrndef1gp.27s.said@dhcp132-231.enst.fr>,
Saïd <said@brian.lan> wrote:
Mais c'est du C, ce NewPtr? C'est du objective C? En tout cas je ne savais
pas que ca existait, je croyais qu'il avait invente le mot pour raccourcir
le programme.
NewPtr est une fonction de l'API de Mac OS. Sous Mac OS X, elle est
toujours disponible dans Carbon.
Patrick
--
Patrick Stadelmann <Patrick.Stadelmann@unine.ch>
Mais c'est du C, ce NewPtr? C'est du objective C? En tout cas je ne savais pas que ca existait, je croyais qu'il avait invente le mot pour raccourcir le programme.
NewPtr est une fonction de l'API de Mac OS. Sous Mac OS X, elle est toujours disponible dans Carbon.
Patrick -- Patrick Stadelmann
Franck
Patrick Stadelmann wrote:
ess=(int*)NewPtr(1); *(ess)=(int)NewPtr(13); Quand tu appelles NewPtr( N ), ça alloue un bloc de N octets. N n'est
pas la valeur qui sera stockée. Donc là il y a un problème car ess pointe vers un bloc de 1 octets, insuffisant pour stocker l'adresse retournée par le 2e NewPtr.
ess=(int*)NewPtr(1);
*(ess)=(int)NewPtr(13);
Quand tu appelles NewPtr( N ), ça alloue un bloc de N octets. N n'est
pas la valeur qui sera stockée. Donc là il y a un problème car ess
pointe vers un bloc de 1 octets, insuffisant pour stocker l'adresse
retournée par le 2e NewPtr.
ess=(int*)NewPtr(1); *(ess)=(int)NewPtr(13); Quand tu appelles NewPtr( N ), ça alloue un bloc de N octets. N n'est
pas la valeur qui sera stockée. Donc là il y a un problème car ess pointe vers un bloc de 1 octets, insuffisant pour stocker l'adresse retournée par le 2e NewPtr.
Apres quelques temps a faire du shockwave, entre paranthese tres fonctionnel, mais trop facile et qu'est ce qu'on ce fait 'chier' d'ailleur!, paranthese fermee, je retourne au 'C' est j'ai besoin de temps en temps de me rafraichir la memoire.
int *ess;
ess=(int*)NewPtr(1); *(ess)=(int)NewPtr(13);
ess, est bien un pointeur de pointeur!
Il y a une question? Sinon, ess est un pointeur sur int et rien d'autre. Et si NewPtr renvoie un pointeur sur une une case memoire qui contient la valeur entiere de son parametre, alors *ess vaut successivement 1 puis l'adresse ou est stocke un int valant 13 (la valeur 1 inscrite a la case memoire pointee par ess apres la premiere affectation a ete ecrasee par la position en memoire de la case contenant 13 et allouee (si NewPtr est bien ecrit) par le second NewPtr).
Quand tu appelles NewPtr( N ), ça alloue un bloc de N octets. N n'est pas la valeur qui sera stockée. Donc là il y a un problème car ess pointe vers un bloc de 1 octets, insuffisant pour stocker l'adresse retournée par le 2e NewPtr.
Patrick 'j'entendais'
ess=(int*)NewPtr(sizeof(int)); =>allocation *(ess)=(int)NewPtr(17*sizeof(int)); le contenu de ess => 17 elements de type int
c'est la meme chose que;
int *ess[17];
for(i=0;i!;i++){ess[i]=NewPtr(17*sizeof(int));}
j'ai vraiment peur de dire des co...
Patrick Stadelmann <Patrick.Stadelmann@unine.ch> wrote:
In article <slrndeevb8.27i.said@dhcp132-231.enst.fr>,
Saïd <said@brian.lan> wrote:
Pat :
Bonjour,
Apres quelques temps a faire du shockwave, entre paranthese tres
fonctionnel, mais trop facile et qu'est ce qu'on ce fait 'chier'
d'ailleur!, paranthese fermee, je retourne au 'C' est j'ai besoin de
temps en temps de me rafraichir la memoire.
int *ess;
ess=(int*)NewPtr(1);
*(ess)=(int)NewPtr(13);
ess, est bien un pointeur de pointeur!
Il y a une question? Sinon, ess est un pointeur sur int et rien d'autre. Et
si NewPtr renvoie un pointeur sur une une case memoire qui contient
la valeur
entiere de son parametre, alors *ess vaut successivement 1 puis l'adresse ou
est
stocke un int valant 13 (la valeur 1 inscrite a la case memoire pointee par
ess apres la premiere affectation a ete ecrasee par la position en memoire
de la case contenant 13 et allouee (si NewPtr est bien ecrit) par le second
NewPtr).
Quand tu appelles NewPtr( N ), ça alloue un bloc de N octets. N n'est
pas la valeur qui sera stockée. Donc là il y a un problème car ess
pointe vers un bloc de 1 octets, insuffisant pour stocker l'adresse
retournée par le 2e NewPtr.
Patrick
'j'entendais'
ess=(int*)NewPtr(sizeof(int)); =>allocation
*(ess)=(int)NewPtr(17*sizeof(int)); le contenu de ess => 17 elements de
type int
Apres quelques temps a faire du shockwave, entre paranthese tres fonctionnel, mais trop facile et qu'est ce qu'on ce fait 'chier' d'ailleur!, paranthese fermee, je retourne au 'C' est j'ai besoin de temps en temps de me rafraichir la memoire.
int *ess;
ess=(int*)NewPtr(1); *(ess)=(int)NewPtr(13);
ess, est bien un pointeur de pointeur!
Il y a une question? Sinon, ess est un pointeur sur int et rien d'autre. Et si NewPtr renvoie un pointeur sur une une case memoire qui contient la valeur entiere de son parametre, alors *ess vaut successivement 1 puis l'adresse ou est stocke un int valant 13 (la valeur 1 inscrite a la case memoire pointee par ess apres la premiere affectation a ete ecrasee par la position en memoire de la case contenant 13 et allouee (si NewPtr est bien ecrit) par le second NewPtr).
Quand tu appelles NewPtr( N ), ça alloue un bloc de N octets. N n'est pas la valeur qui sera stockée. Donc là il y a un problème car ess pointe vers un bloc de 1 octets, insuffisant pour stocker l'adresse retournée par le 2e NewPtr.
Patrick 'j'entendais'
ess=(int*)NewPtr(sizeof(int)); =>allocation *(ess)=(int)NewPtr(17*sizeof(int)); le contenu de ess => 17 elements de type int
c'est la meme chose que;
int *ess[17];
for(i=0;i!;i++){ess[i]=NewPtr(17*sizeof(int));}
j'ai vraiment peur de dire des co...
Schmurtz
Patrick Stadelmann wrote:
Saïd wrote:
Mais c'est du C, ce NewPtr? C'est du objective C? En tout cas je ne savais pas que ca existait, je croyais qu'il avait invente le mot pour raccourcir le programme.
NewPtr est une fonction de l'API de Mac OS. Sous Mac OS X, elle est toujours disponible dans Carbon.
Cette fonction n'est présente dans Mac OS X que pour des raisons de compatibilité Carbon. Il faut éviter de l'utiliser et la remplacer par malloc() (et free()), voir new/delete si c'est du C++.
Par ailleurs, l'usage des doubles pointeurs n'a que très peu d'intérêt (c'est en plus la cause de nombreux bugs), et peut quasiment toujours être remplacé par un pointeur simple. Si besoin, il y a la fonction realloc pour agrandir un bloc mémoire alloué avec malloc.
Si vraiment tu tiens, aux doubles pointeurs, autant utiliser les APIs pour (NewHandle et compagnie). Mais franchement, évite...
-- Schmurtz
Patrick Stadelmann <Patrick.Stadelmann@unine.ch> wrote:
Saïd <said@brian.lan> wrote:
Mais c'est du C, ce NewPtr? C'est du objective C? En tout cas je ne savais
pas que ca existait, je croyais qu'il avait invente le mot pour raccourcir
le programme.
NewPtr est une fonction de l'API de Mac OS. Sous Mac OS X, elle est
toujours disponible dans Carbon.
Cette fonction n'est présente dans Mac OS X que pour des raisons de
compatibilité Carbon. Il faut éviter de l'utiliser et la remplacer par
malloc() (et free()), voir new/delete si c'est du C++.
Par ailleurs, l'usage des doubles pointeurs n'a que très peu d'intérêt
(c'est en plus la cause de nombreux bugs), et peut quasiment toujours
être remplacé par un pointeur simple. Si besoin, il y a la fonction
realloc pour agrandir un bloc mémoire alloué avec malloc.
Si vraiment tu tiens, aux doubles pointeurs, autant utiliser les APIs
pour (NewHandle et compagnie). Mais franchement, évite...
Mais c'est du C, ce NewPtr? C'est du objective C? En tout cas je ne savais pas que ca existait, je croyais qu'il avait invente le mot pour raccourcir le programme.
NewPtr est une fonction de l'API de Mac OS. Sous Mac OS X, elle est toujours disponible dans Carbon.
Cette fonction n'est présente dans Mac OS X que pour des raisons de compatibilité Carbon. Il faut éviter de l'utiliser et la remplacer par malloc() (et free()), voir new/delete si c'est du C++.
Par ailleurs, l'usage des doubles pointeurs n'a que très peu d'intérêt (c'est en plus la cause de nombreux bugs), et peut quasiment toujours être remplacé par un pointeur simple. Si besoin, il y a la fonction realloc pour agrandir un bloc mémoire alloué avec malloc.
Si vraiment tu tiens, aux doubles pointeurs, autant utiliser les APIs pour (NewHandle et compagnie). Mais franchement, évite...
-- Schmurtz
Patrick Stadelmann
In article <1h0dbmi.2nzz013zx5t8N%, (Pat) wrote:
ess=(int*)NewPtr(sizeof(int)); =>allocation *(ess)=(int)NewPtr(17*sizeof(int)); le contenu de ess => 17 elements de type int
Surtout pas ! La valeur retournée par NewPtr peut être castée en un autre type de pointeur, mais certainement pas en int ! Il faudrait écrire :