我試圖創建和零的基礎上大小int
s表示我在運行時得到一個數組的大小:創建的int數組,其大小是基於一個NSArray
size = [gamePiece.availableMoves.moves count]; //debugger shows size = 1;
int array[size]; //debugger shows this as int[0] !
memset(array, 0, size);
indexes = array;
size
和indexes
是這個類的實例變量二者:
int size;
int* indexes;
我結束了一個長度爲0的數組,雖然。我如何使用[gamePiece.availableMoves.moves count]
指定的尺寸創建它?
可變長度數組是有效的C99,但不是C++(儘管一些編譯器支持它),這可能是您測試它時「int array [size]」不起作用的一個原因。另一個潛在的原因是調試器無法處理可變長度的數組。並不是說上述內容可以在C99下工作,因爲其他人已經指出,即'array'具有本地持續時間。另請參見:[C/C++:在運行時的數組大小不允許動態分配?](http://stackoverflow.com/questions/737240/cc-array-size-at-run-time-wo-dynamic -allocation-是允許的)。 – outis 2011-03-01 04:34:43