मैं एमएस विजुअल सी ++ में सी 99 में परिभाषित वीएलए, वैरिएबल लम्बाई सरणी के उपयोग को कैसे सक्षम कर सकता हूं या यह संभव नहीं है?एमएस विजुअल सी ++ में वीएलए (परिवर्तनीय लंबाई सरणी) को सक्षम करना?
हाँ मुझे पता है कि सी ++ मानक सी 8 9 पर आधारित है और वीएलए सी 8 9 मानक में उपलब्ध नहीं हैं और इस प्रकार सी ++ में उपलब्ध नहीं हैं, लेकिन एमएसवीसी ++ को सी कंपाइलर भी माना जाता है, एक ऐसा व्यवहार जो हो सकता है/टीसी कंपाइलर पैरामीटर (Compile as C Code (/TC)
) का उपयोग करने पर स्विच किया गया। लेकिन ऐसा करने से VLAs को सक्षम नहीं लगता है और संकलन प्रक्रिया C++ (Compile as C++ Code (/TP)
) के निर्माण के दौरान समान त्रुटियों के साथ विफल हो जाती है। हो सकता है कि एमएसवीसी ++ सी कंपाइलर केवल सी 8 9 अनुरूप है या मुझे कुछ याद आ रहा है (कुछ विशेष निर्माण या प्रगति/परिभाषित)?
कोड का नमूना:
#include <stdlib.h>
int main(int argc, char **argv)
{
char pc[argc+5];
/* do something useful with pc */
return EXIT_SUCCESS;
}
संकलित त्रुटियों:
त्रुटि C2057: उम्मीद निरंतर अभिव्यक्ति
त्रुटि C2466: लगातार आकार की एक सरणी आवंटित नहीं कर सकता 0
त्रुटि C2133 : 'पीसी': अज्ञात आकार
इतना ही नहीं, शायद यह कभी नहीं होगा: http://connect.microsoft.com/VisualStudio/feedback/details/333273/request-for-c99-vla-in-visual-studio बहुत खराब। –
तब विवाद सुलझता है। :-) क्या ऐसी भाषा में माइक्रोसॉफ्ट एक्सटेंशन है जो वीएलए को सक्षम बनाता है? जीसीसी में एक है, इस प्रकार सी 99 अनुपालन के अलावा उन्हें सी 9 0 और सी ++ के लिए सक्षम बनाता है। http://gcc.gnu.org/onlinedocs/gcc/Variable-Length.html – Shinnok
मुझे लगता है कि जॉन प्रदान किया गया लिंक इंगित करता है कि ऐसा नहीं है, और जल्द ही कोई समय नहीं होगा। –