makes pointer from integer without a cast
i have a simply warning in my iphone dev code.
NSUInteger *startIndex = 20;
This code work, but i have a warning :
warning: passing argument 1 of 'setSta开发者_运维技巧rtIndex:' makes pointer from integer without a cast
Thanks for your help.
The warning pretty much says it all: you are initialising startIndex
, which is a pointer to NSUInteger
, to 20
, which is an integer literal. You need to allocate the space to hold the integer itself somewhere.
It may be that what you want is something more like this:
NSUInteger *startIndex = malloc(sizeof(NSUInteger));
*startIndex = 20;
Or perhaps
static NSUInteger startIndex = 20;
NSUInteger *startIndexPtr = &startIndex;
But given the var name, it seems you may also be muddling the semantics a bit, and probably really just want:
NSUInteger startIndex = 20;
NSUInteger is a scalar type (defined as typedef unsigned int NSUInteger;
). Correct your code to:
NSUInteger startIndex = 20;
You can use it directly afterwards (or with &startIndex if you need to pass a pointer to NSUInteger).
精彩评论