我在编写一个带有指针的简单程序时遇到了一些问题和阵列。目标是将值128插入512个使用指针的数组。问题是,如果我使用超过50个索引我的核心被甩了。我是错过了什么,还是环境限制?需要malloc()吗?还是应该在其他地方定义数组?
#include <stdio.h>
#include <stdarg.h>
#define MAX 512
int main(void){
int i, *p, a[MAX];
i = 0;
p = &a[0];
for (i=0 ; i <= MAX; i++){
*(p+i) = 128;
}
printf("First value %d last value of pointer %dn", *p, *(p+(MAX-1)) );
}
将i<=MAX
更改为i < MAX
。您的数组是MAX
=512个元素长,第一个元素是a[0]
,第二个是a[1]
,第500个是a[499]
。没有a[512]
。