Ich habe versucht, diese Funktion zu verstehen. Liefert die folgende Funktion die Summe der ASCII-Werte von Zeichen in der Zeichenfolgen-URL? Keinememcpy für String zu int
int map(char* url) {
int key;
memcpy(key, url, sizeof(int));
return key;
}
was versuchen Sie zu erreichen? Inkrementieren von Buchstaben und/oder Zahlen? Sie können das über Anweisungen wie 'char c = 'A' tun; C++ 'und die Likes ... wohlgemerkt: Sobald Sie über 0x126 inkrementieren, werden Sie wieder mit 0x0 * (NUL) * beginnen - und es gibt ziemlich viele nicht druckbare Zeichen, bis Sie zu den druckbaren Zeichen gelangen ... – specializt
Can Sie erklären, was Sie mit der Funktion machen wollen? – 599644
Nein, es wird das erste Zeichen mal 2^(8 * 3) plus das zweite Zeichen mal 2^(8 * 2) plus das dritte Zeichen mal 2^(8 * 1) plus das vierte Zeichen mal 2^(8 * 0), angenommen "CHAR_BIT == 8" und "sizeof int == 4" und "strlen (url)> = 4". Eine andere Annahme von mir ist, dass Ihr Programm auf Big-Endian-Architektur läuft. Wenn es auf Little-Endian-Architektur läuft, wird das Ergebnis "Gegenteil" von dem sein, was ich erwähnte. Kurz gesagt, Ihr Code ist plattformabhängig (wegen des Endian-Ness-Problems, des Problems "sizeof int" und des Problems "CHAR_BIT"). –