→ tjjh89017:int b[a] <--問題在這 07/30 23:56
→ tjjh89017:可以改用C++ compiler,這在C++裏面是允許的 07/30 23:57
→ heyra:請問一下,如果指定用C compiler呢? 07/31 00:00
推 KoenigseggG:VLA, C99 為啥不用動態配置0.0 07/31 00:01
推 rebaudiana:C++不合法,C99才合法吧…? 07/31 00:02
推 AstralBrain:use std::vector 07/31 00:03
→ xpride:c++不行吧,他那知道b要配多大? 07/31 10:54
推 ppc:int 要是const & 有 initialization才在C++合法 07/31 12:44
推 Killercat:他要scanf 這個大概無解 用new/malloc吧 07/31 13:41
→ tjjh89017:C++某個版本後的g++可以這樣做,我記得遠古的devc++都可 07/31 13:55
→ tjjh89017:以,VC++也是可以work的~~ 07/31 13:56
→ tjjh89017:這個在組合語言的配置裡面會變成,先配置一個pointer 07/31 13:58
→ tjjh89017:再去運算那個a值以及type長度,操作esp把空間配置出來 07/31 13:59
→ tjjh89017:最後再把剛剛的pointer指向配置的stack frame中 07/31 13:59
推 keeper7478:這不是C++可以,是DevC++預設使用C99編譯… 07/31 15:41
→ tjjh89017:樓上意思是? 07/31 17:09
推 keeper7478:VLA是C99跟GNU C extension裡面的東西,DevC++ compile 07/31 18:48
→ keeper7478:的時候預設有開這個的支援,所以編得過 07/31 18:48
→ keeper7478:C++「本身」是沒有 VLA 的 07/31 18:49
→ tjjh89017:原來如此 07/31 22:53
→ sunneo:他在llvm/clang會被編譯為alloca,移動堆疊配置空間的api 08/02 00:30
→ Killercat:alloca本來是linux only, win32是沒這東西的 08/02 07:27
→ Killercat:不過這的確是一個很合理的解法就是 08/02 07:27
→ kenn2001:b[a] 不可為變數 08/07 17:05