我有这个基本代码,旨在询问用户要输入多少个整数,让用户为每个整数输入指定的数字,然后重新打印用户输入的整数,除了不打印它只是打印的整数0个
int getInts(int * integersArray, int numInput);
int main() {
int * integersArray;
int numInput;
int i;
numInput = getInts(integersArray, numInput);
for (i = 0; i < numInput; i++) {
printf("%d ",integersArray[i]);
}
return 0;
}
int getInts(int * integersArray, int numInput) {
int i;
printf("Please enter the number of integers you want to input\n");
scanf("%d", &numInput);
integersArray = (int *) malloc(sizeof(int) * numInput);
for (i = 0; i < numInput; i++) {
printf("please enter integer %d: ", i+1);
scanf("%d", &(integersArray[i]));
}
return numInput;
}
最佳答案
移动这些行:
printf("Please enter the number of integers you want to input\n");
scanf("%d", &numInput);
integersArray = (int *) malloc(sizeof(int) * numInput);
到main
, 在你打电话之前 getInts
.
你需要这个的原因是 getInts
收到 integersArray
的副本(即指针的副本)和 getInts
内的赋值只修改副本,integersArray
主要保持完整。
关于c - 打印 0 而不是指定数字的基本功能 C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23594496/