我有这样的功能:打印一个数组,不知道大小
int printArray(int* arr, int size) {
int i = 0;
while (size--) {
printf("%d, ", *(arr + i++));
}
return EXIT_SUCCESS;
}
我怎样才能打印阵列,而不使用大小参数?
L.E.我试图做这样的事情:
int printArray(int* arr) {
int i = 0;
while (*(arr + i)) {
printf("%d, ", *(arr + i++));
}
return EXIT_SUCCESS;
}
但每个输出后跟三个未知值:(在:1 2 3 4; 出:1 2 3 4 343443 -432244 324333)。
谢谢!
Dunno。一般来说,你不能。您的整套数据中是否存在可用作定点的非法值? -1,也许? –
你为什么要这样? – 2013-12-03 18:38:40
'while(*(arr + i)){...}'是一个缓冲区溢出 - 您正在读入不适合您的内存,并且只有当'arr + i'碰巧指向值' 0'! –