在C中使用索引大于50的数组时进行内核转储
我在编写带有指针的简单程序时遇到了一些问题 和阵列。目标是将128的值插入到 使用指针的数组。问题是如果我使用超过50个索引 我被人甩了。我是遗漏了什么还是环境限制? 需要malloc()还是应该在其他地方定义数组在C中使用索引大于50的数组时进行内核转储,c,arrays,pointers,C,Arrays,Pointers,我在编写带有指针的简单程序时遇到了一些问题 和阵列。目标是将128的值插入到 使用指针的数组。问题是如果我使用超过50个索引 我被人甩了。我是遗漏了什么还是环境限制? 需要malloc()还是应该在其他地方定义数组 #include <stdio.h> #include <stdarg.h> #define MAX 512 int main(void){ int i, *p, a[MAX]; i = 0; p = &a[0];
#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 %d\n", *p, *(p+(MAX-1)) );
}
#包括
#包括
#定义最大512
内部主(空){
int i,*p,a[MAX];
i=0;
p=&a[0];
因为(i=0;iChangeiChangei*(p+i)
withi==MAX
对于a[MAX]
是不允许的。另外,为什么不使用p[i]
?阅读起来要愉快得多。你可能的意思是我认为p是一个指针,所以方括号不起作用。*(p+i)i==MAX
的a[MAX]
是不允许的。另外,为什么不使用p[i]
?阅读起来更愉快。你的意思可能是我认为p是一个指针,所以方括号不起作用。它起了很大的作用。我很好奇为什么运算符less或equal不起作用。因为有很多问题。我在过去一个多小时里一直在努力完成这个任务。它起了很大的作用。我很好奇为什么did运算符less或equal不起作用。因为它有很多问题。过去一个小时左右,我一直在努力处理这个任务。