函数内部的内存分配

问题描述 投票:1回答:1

当我在主函数中仅使用一个*来使用malloc时,程序运行良好,但是当我将指针的指针作为参数传递给remp1函数中的参数时,它不起作用!


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

void saisie(int *n) {
    printf("1) Donner la taille du tableau : ");
    scanf("%d",n);
}

void remp1(int **t,int n) {
    int i=0;
    t=(int**)malloc(n*sizeof(int*));    
    for(;i<n;i++) {
        printf("T[%d] = ",i+1);
        scanf("%d",t+i);
    }
}

void afftab(int *t,int n) {
    int i=0;
    char ch[n]; 
    for(;i<n;i++) {
        sprintf(ch+i,"%d",t[i]);
    }
        puts(ch);

}


void main() {
    int *t;
    int n;

    saisie(&n);
    remp1(t,n);
afftab(t,n);
} 
c pointers dynamic-memory-allocation
1个回答
0
投票

t需要在此行*t中加一个引用(t=(int*)malloc(n*sizeof(int));

© www.soinside.com 2019 - 2024. All rights reserved.