我正在学习C编程.我想找到一个数组的中间点而不知道它的长度.如果数组的长度是6,中间点必须是第4,但我有一个错误,我不知道它是什么.这是我的代码:
int *a =(int *) malloc(sizeof(int) * n);
int i;
for( i = 0; i < sizeof(a); i++)
scanf("%d",&a[i]);
Run Code Online (Sandbox Code Playgroud)
任何人都可以提供帮助,谢谢.
Fer*_*eak 10
scanf 正在读入一个地址,所以:
scanf("%d",a[i])
Run Code Online (Sandbox Code Playgroud)
应该是:
scanf("%d", &a[i])
Run Code Online (Sandbox Code Playgroud)
free当你完成时不要忘记记忆.(对于像这样的微小应用程序并不重要,但是当你从学习阶段走出并进入现实生活中编程时,如果你习惯了这是一个好习惯)
而且:sizeof(a)是指针的大小,而不是指针指向的内存大小(正如在另一个答案中正确指出的那样).