Je n'utilise pas correctement le format spécificateurs C. Quelques lignes de code:spécificateur de format pour entier court
int main()
{
char dest[]="stack";
unsigned short val = 500;
char c = 'a';
char* final = (char*) malloc(strlen(dest) + 6);
snprintf(final, strlen(dest)+6, "%c%c%hd%c%c%s", c, c, val, c, c, dest);
printf("%s\n", final);
return 0;
}
Ce que je veux copier à
finale [0] = a aléatoire omble final [1] = char aléatoire final [2] et final [3] = le tableau court final [4] = autre omble chevalier ....
Mon problème est que je veux copier le deux octets de l'int court à 2 octets du tableau final.
merci.
Je souhaite ajouter 4 octets (4 caractères) et 2 autres pour un entier court, c'est-à-dire 6 caractères – cateof
@cateof: Mais votre entier court peut utiliser jusqu'à 5 caractères (octets) lorsqu'il est formaté en tant que chaîne. Il utilise 3 dans ce cas (500). –
@cateof Vous avez oublié le caractère NULL, et lorsque vous convertissez votre court-circuit en chaîne, il devient "500", ce qui fait trois caractères et prend trois octets. Je crois que le maximum court est 32767, donc vous devriez laisser cinq octets d'espace pour être sûr que ça va aller –