我正在尝试将指针传递给指向过程的指针,但是每次我都会遇到段错误,而将其传递给函数则可以正常工作。我想这可能与强制 C 自动在数组上指向指针有关,例如在这个问题中: 将指针传递给 C 中的指针。
但我不知道如何解决它。
这是代码:
#include <stdio.h>
#include <stdlib.h>
void creer_matrice(int nbCol, int nbLigne, char **matrice)
{
int i,j;
matrice = calloc( nbCol, sizeof(char*));
if( matrice == NULL ){
printf("Allocation impossible");
exit(EXIT_FAILURE);
}
for( i = 0 ; i < nbLigne ; i++ ){
matrice[i] = calloc (nbCol, sizeof(char*));
if( matrice[i] == NULL ){
printf("Allocation impossible");
exit(EXIT_FAILURE);
}
}
/* Remplissage de test*/
for(i = 0; i < nbLigne; i++){
for(j = 0; j < nbCol; j++){
matrice[i][j] = 'I';
}
}
//return matrice;
}
int main(){
int i,j;
char **matrice;
creer_matrice(8,6,matrice);
//matrice = creer_matrice(8,6);
for(i = 0; i < 6; i++){
for(j = 0; j < 8; j++){
printf("%c ",matrice[i][j]);
}
printf("\n");
}
}
有人可以告诉我我错在哪里以及如何解决吗?