我尝试创建一个在C中分配数组的函数 我没有得到正确的地址。
这是代码:
#include <stdio.h>
#include <stdlib.h>
void allocate_array(int* arr, int size);
void print_array(int* arr, int size);
void main(){
int size;
int* arr;
printf("Please enter array size: ");
scanf("%d", &size);
allocate_array(arr, size);
print_array(arr, size);
}
void allocate_array(int* arr, int size){
int i;
arr = (int*)malloc(size*sizeof(int));
for(i=0; i<size; i++){
printf("arr[%d] = ",i);
scanf("%d", arr+i);
}
}
void print_array(int* arr, int size){
int i;
printf("\n");
for(i=0; i<size; i++){
printf("arr[%d] = %d\n", i, *(arr+i));
}
}
这是我得到的输出:
Please enter array size: 4
arr[0] = 1
arr[1] = 2
arr[2] = 3
arr[3] = 4
arr[0] = 1
arr[1] = 0
arr[2] = 155039806
arr[3] = 32765
我试图在“allocate_array”函数中打印指针 而在“主”但我得到不同的结果。
请帮助:)
谢谢!