Thursday 15 May 2014

c++ - casting using reinterpret_cast causes: OverflowError: signed integer is less than minimum -


im casting

  char * कुछ = reinterpret_cast & lt; char * & gt; (& amp; GPBuffer );   

और वापस की तुलना में:

  चार temp1 [400]; स्ट्रिंग बफर = रीइन्टरिप_कास्ट & lt; स्ट्रिंग & amp; & gt; (temp1);   

मुझे पता है कि यह चारों को स्ट्रिंग करने के लिए बेवकूफ लग रहा है परन्तु यह वही है जो मुझे चाहिए और यह काम करता है!

लेकिन अगर मैं "कुछ" आंतरिक क्यू) एक अलग धागा के लिए, और मैं वापस डालने की कोशिश, मुझे प्राप्त होता है:

0x00000000009bb2dd in std :: basic_string, std :: allocator & gt; :: operator = (यह = 0x48410790, __str = ट्रैसबैक (सबसे हाल ही में कॉल अंतिम): फ़ाइल "/usr/share/gdb/python/libstdcxx/v6/printers.py", पंक्ति 469, to_string रिटर्न में self.val ['_ M_dataplus'] ['_ M_p']। स्ट्रिंग (एन्कोडिंग, लम्बाई = लेन) ओवरफ्लो त्रुटि: कम से कम हस्ताक्षरित पूर्णांक) /usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++ पर /4.1.2/bits/basic_string.h:486

कोई भी इस त्रुटि से परिचित है?

आप एक सादे वर्ण सरणी लेते हैं, उसे स्ट्रिंग में डालते हैं, और बस यह काम करने की अपेक्षा करते हैं? आप सोचते हैं कि आप बहादुर हैं।

फिर भी, जो त्रुटि आपको मिल रही है वह डीबगर की पायथन स्क्रिप्ट से आता है जो एक पठनीय रूप में std :: string को प्रिंट करने की कोशिश करता है। चूंकि आपके पास कुछ भी है, लेकिन एक मान्य std :: स्ट्रिंग है, कुछ स्क्रिप्ट में जांच की जाती है और त्रुटि को फेंकता है यह एक सामान्य C ++ त्रुटि नहीं है।

No comments:

Post a Comment