我得到一些问题与c中的scanf()


#include <stdio.h>
#include <stdlib.h>
void add(int *arr, int n);
int main() {
int arr[] = {};
add(arr, 4);
return 0;
}
void add(int *arr, int n){
for (int i = 0; i < n; i++){
printf("%d index is : ", i);
scanf("%dn", &arr[i+1]);
}
}

for循环在I == 1之后不起作用…执行停止,然后我必须按下某个字母,然后执行整个for循环,不带任何值…

C和c++中的声明

int arr[] = {};

是无效的。初始化列表不能为空。

可以写成C

int arr[4] = { 0 };

int arr[] = { [3] = 0 };

在函数内而不是

scanf("%dn", &arr[i+1]);
^^^

你必须写

scanf("%d", &arr[i]);
^^^

否则将访问数组外的内存。

最新更新