initialiser le pointeur de la struct
typedef struct
{
char *s;
char d;
}EXE;
EXE *p;
Pour le dessus de struct
comment initialiser la structure avec le pointeur? Je sais que pour un non-pointeur de nous faire EXE a[] = { {"abc",1}, {"def",2} };
. De même Est-il possible avec un pointeur après l'allocation de la mémoire? Dire comme p[] = { {"abc",1},.. so on}
. Fondamentalement, je veux initialiser de façon dynamique. Merci.
Prenez un bon livre pour éviter de poser des de telles questions dans l'avenir.
Qu'est ce que je suis absent, pouvez vous s'il vous plaît? Est-ce que de base/novice question? Merci.
Regarder ma mise à jour de réponse. De toute façon, je vous conseille de lire à propos de
Et il n'y a pas de différence de "niveau" de la question.
Qu'est ce que je suis absent, pouvez vous s'il vous plaît? Est-ce que de base/novice question? Merci.
Regarder ma mise à jour de réponse. De toute façon, je vous conseille de lire à propos de
pointers
parce qu'il semble que vous n'avez pas la compréhension de la façon dont les pointeurs de travail. C'est difficile (les pointeurs), mais il vaut la peine de passer plusieurs heures à lire à leur sujet. Espère que vous allez réussir;)Et il n'y a pas de différence de "niveau" de la question.
OriginalL'auteur foo_l | 2013-08-05
Vous devez vous connecter pour publier un commentaire.
Nous pouvons initialiser la structure avec le pointeur comme ci-dessous
i
à48
?OK. l'a obtenu. vous avez essayé d'assigner une valeur. Mais cela permettra de stocker uniquement les abcd de chaîne dans la mémoire allouée. Que faire si je veux avoir différentes chaînes de caractères et des valeurs. merci encore.
2ème élément de la structure est en caractère droit,donc, l'ajout de valeur ascii de 0 =48 ,de sorte que nous avons caractère 0,1,2,3,4
vous déclarez tableau de pointeurs de char pour le 1er membre de la structure et du tableau d'entiers pour le second membre et dynamique, en donner la valeur. char *e[5]; char s[10]; for(j=0;j<5;j++) { scanf("%s",s); *(e+j)=malloc(sizeof(s)); strcpy (*e+j),s); }
Je me demandais, je sais que parfois, il faut initialiser la structure avec memset à remplir avec des 0, devrait même être fait avec une struct pointeur? quelle que soit la raison, veuillez expliquer pourquoi. personnellement, je ne pense pas qu'il devrait, mais j'ai besoin d'assurance.
OriginalL'auteur EnterKEY
Abord, vous avez besoin d'allouer de la mémoire pour que
char *
et après que l'utilisationstrcpy
bibliothèque de fonction pour copier les données de la structure de l'élément.J'espère que cela aidera. Si je peux vous donner le code complet, Mais je veux que vous essayez.
Vous pouvez utiliser cette
Allouer dynamiquement de la structure C?
et c'est une double question.
Je veux que vous devriez écrire du code pour cela. Jusqu'à ma connaissance, je suis de droite... Un exemple de plus pour vous stackoverflow.com/questions/6296880/... il suffit de chercher, vous obtiendrez hundreads de question de ce genre.
OriginalL'auteur someone
Vous devez comprendre comment faire alloué pointeur de travaux:
Ptr = malloc(3*sizeof(EXE))
.Ici vous pouvez comprendre comment il fonctionne:
Avis:
- Si vous avez une variable struct utilisation
.
en chair et en os à l'accès aux éléments.- Si vous avez un pointeur vers une struct utilisation
->
opérateur d'accès aux éléments.OriginalL'auteur yulian