block-dynamic-array.c [plain text]
#import <Foundation/Foundation.h>
#import <Block.h>
int _getArrayCount() {return 5;}
int func ()
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
int array[5];
int i;
const int c = 5;
for (i = 0; i < c; ++i)
{
array[i] = i+1;
}
void (^block)(void) = ^{
int i;
NSLog (@"c = %d", c);
for (i = 0; i < c; ++i)
{
NSLog (@"array[%d] = %d", i, array[i]);
}
};
block();
[pool drain];
return 0;
}
int main (int argc, const char *argv[])
{
int res;
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
int array[_getArrayCount()];
int i;
const int c = _getArrayCount();
for (i = 0; i < c; ++i)
{
array[i] = i+1;
}
void (^block)(void) = ^{
int i;
NSLog (@"c = %d", c);
for (i = 0; i < c; ++i)
{
NSLog (@"array[%d] = %d", i, array[i]);
}
};
block();
res = func();
[pool drain];
return 0 + res;
}
int test()
{
__block int arr[100];
^ {
(void)arr[2];
};
}