C中的动态分配 - 分配到函数

时间:2015-12-22 13:59:02

标签: c malloc

我想要的是分配标签并用一些数字填充它。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void prepare_internship(int** tab) {
    *tab = malloc(5 * sizeof(int));
    *(*tab+0) = 1;
}

int main() {
    int** tab;
    prepare_internship(tab);
    printf("%d", *(tab));
    return 0;
}

2 个答案:

答案 0 :(得分:3)

您将未初始化的指针传递给prepare_internship。如果您希望函数修改tab,则需要的是:

int* tab;
prepare_internship(&tab);

但在这种情况下,最好将您的功能更改为int*返回类型,然后您只需使用tab = prepare_internship();

进行调用即可

答案 1 :(得分:0)

int** tab未初始化。它应该是int* tab,当作为参数传递时,传递方式如下:&tab