计算C中数组中的项数

时间:2016-02-11 06:46:49

标签: c arrays items

当我做其他人在线发布的内容时,我一直得到NSData *pngData = UIImagePNGRepresentation([UIImage imageNamed:@"logo_icon_login.png"]); NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsPath = [paths objectAtIndex:0]; NSString *filePath = [documentsPath stringByAppendingPathComponent:@"image.png"]; if ([[NSFileManager defaultManager] isWritableFileAtPath:filePath]) { [pngData writeToFile:filePath atomically:YES]; } else { NSLog(@"Not writable."); } 的输出:

100

它似乎对我不起作用。这是我的代码:

int total = sizeof(num)/sizeof(int);

我的输出是100所以我假设没有任何东西被插入num数组?如果我打印出来int main() { static int num[100]; int totalNum = sizeof(num)/sizeof(int); return 0; } void readNumbers(int* num) { int i = 0; FILE *fp; fp = fopen("/Users/Documents/hello.txt", "r"); if (fp == NULL) { printf("Could not load file"); exit(0); } /* Loads numbers into num array */ int number; while(fscanf(fp, "%d", &number) > 0) { num[i] = number; i++; } } 它会给我一百个; 4个字节* 100 = 400.

以下是sizeof(num)中的内容:

hello.txt

1 个答案:

答案 0 :(得分:3)

与其他语言中的数组(可以增长和缩小,并告诉您数组当前包含多少元素)不同,C数组只是一个具有固定大小的简单内存块。你声明了一个可以容纳100个元素的数组,并且所有sizeof都会告诉你。

如果你想知道你在阵列中放了多少个数字,那么你必须在一个单独的变量中跟踪它。数组本身不包含该信息。