J'essayais de comprendre cette fonction. Est-ce que la fonction suivante retournera la somme des valeurs ASCII des caractères dans l'URL de la chaîne?memcpy pour string à int
int map(char* url) {
int key;
memcpy(key, url, sizeof(int));
return key;
}
qu'essayez-vous d'atteindre? Incrémentation de lettres et/ou de chiffres? Vous pouvez le faire via des instructions comme 'char c = 'A'; C++ 'et les goûts ... attention: une fois que vous avez dépassé 0x126, vous recommencez avec 0x0 * (NUL) * - et il y a quelques caractères non-imprimables jusqu'à ce que vous arriviez aux caractères imprimables ... – specializt
Can vous expliquez ce que vous voulez que la fonction fasse? – 599644
Non, il retournera le premier caractère fois 2^(8 * 3) plus le deuxième caractère fois 2^(8 * 2) plus le troisième caractère fois 2^(8 * 1) plus le quatrième caractère fois 2^(8 * 0), en supposant que 'CHAR_BIT == 8' et' sizeof int == 4' et 'strlen (url)> = 4'. Une autre hypothèse est que votre programme fonctionne sur l'architecture Big-Endian. S'il fonctionne sur l'architecture Little-Endian, alors le résultat sera "opposé" à ce que j'ai mentionné. Donc, en résumé, votre code dépend de la plateforme (à cause du problème endian-ness, du problème 'sizeof int' et du problème' CHAR_BIT'). –