【发布时间】:2012-01-08 23:24:13
【问题描述】:
我在下面创建了一个代码,我需要在其中跟踪一个数组,增加指向数组的指针,并在数组结束时停止。
我使用下面的代码进行了测试,显然在增加 ptr 和打印 *ptr 的 1000 次迭代之后,我得到了 0 作为值。
那么数组的最后一个元素总是为 0 是真的吗?如果动态创建数组长度(并且我不允许使用链表),我如何告诉 ptr 在最后一个元素处停止?恐怕如果我使用下面的代码,有一天我会遇到 printf i=1000 ,它会返回我随机的内存位置(到目前为止,下面的代码不是真的,但谁知道)..
#include <stdio.h>
int my_array[] = {1,23,17,4,-5,100};
int *ptr;
int main(void)
{
int i;
ptr = &my_array[0]; /* point our pointer to the first
element of the array */
printf("value of ptr is %d\n", *ptr);
for(i=0; i<1000; i++){
ptr++;
}
printf("value of ptr is now %d", *ptr);
return 0;
}
【问题讨论】: