我在 C 中创建了一个结构数组,我想在一个 void 函数中初始化它。如果我使用 return 函数,那很好,但是如果我使用 void 函数,我会遇到一些问题。这是我的代码
#include <stdio.h>
#include <stdlib.h>
typedef struct Essai{
char *nom;
struct Essai* next;
} Essai;
void initialise(Essai* essai){
struct Essai *newE = malloc(sizeof(Essai));
newE->next = NULL;
printf("What's your name ? ");
scanf("%s", newE->nom);
if(essai != NULL){
essai = newE;
}else{
struct Essai* temp = essai;
while(temp->next != NULL) temp = temp->next;
temp->next = newE;
}
}
int main()
{
Essai *var = NULL;
initialise(var);
printf("nom : %s", var->nom);
return 0;
}
在函数中 essai 被很好地创建但是在函数之外它变成了 NULL。
我是一名优秀的程序员,十分优秀!