int
को 32 बिट और 64 बिट लिनक्स प्लेटफॉर्म पर C99 में size_t
में कनवर्ट/कास्ट करने का उचित तरीका क्या है?सी: कास्ट int से size_t
उदाहरण:
int hash(void * key) {
//...
}
int main (int argc, char * argv[]) {
size_t size = 10;
void * items[size];
//...
void * key = ...;
// Is this the right way to convert the returned int from the hash function
// to a size_t?
size_t key_index = (size_t)hash(key) % size;
void * item = items[key_index];
}
मैं क्यों यह काम नहीं होता नहीं दिख रहा। – slartibartfast
साधारण सादे कास्ट '(size_t)' के साथ क्या समस्या है? क्या यह किसी भी तरह से "उचित" नहीं है? – AnT
हाँ, यह सही है, हालांकि मुझे लगता है कि यह पूरी तरह से परिवर्तित हो गया है, इसलिए आपको वास्तव में * (size_t) 'की आवश्यकता नहीं है। –