函数中的指针不返回正确的地址

时间:2017-07-31 15:42:03

标签: c malloc

我尝试创建一个在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”函数中打印指针 而在“主”但我得到不同的结果。

请帮助:)

谢谢!

0 个答案:

没有答案