报错,C4700 使用了未初始化的局部变量“L”

时间:2022-11-27 19:43:39
想知道哪里有问题?本来就是想要在方法里面去初始化。

#define _CRT_SECURE_NO_DEPRECATE
#include <stdio.h>
#define see system("pause")
typedef struct LNode {
char data;
struct LNode *next;
}LNode;
void CreateList_L(LNode *L, int n) {
L = (LNode *)malloc(sizeof(LNode));
LNode *p;
L->next = NULL;
for (int i = n; i > 0; --i) {
p = (LNode *)malloc(sizeof(LNode));
scanf(p->data);
p->next = L->next;
L->next = p;
}
}
int main(void) {
LNode *L;
int n = 6;
CreateList_L(L,n);
}

4 个解决方案

#1


有没有人帮忙看下

#2


编译器不致倒你要在方法里面去初始化。 初始化放调用前。

int main(void) {
    LNode *L;
    int n = 6;
L = (LNode *)malloc(sizeof(LNode));
    CreateList_L(L,n);
return 0;
}

#3


void CreateList_L(LNode  *&L, int n)
应该要这样子才对,函数内赋值才能修改参数

还有这个应该只是个警告,或者你把错误级别调高了?
你能确保代码没问题,这个可以忽略,但是良好的做法还是初始化一下

#4


CreateList_L函数的第一个参数要传地址,不然是按值传递,你分配的内存只是给了一个复制后的指针

#1


有没有人帮忙看下

#2


编译器不致倒你要在方法里面去初始化。 初始化放调用前。

int main(void) {
    LNode *L;
    int n = 6;
L = (LNode *)malloc(sizeof(LNode));
    CreateList_L(L,n);
return 0;
}

#3


void CreateList_L(LNode  *&L, int n)
应该要这样子才对,函数内赋值才能修改参数

还有这个应该只是个警告,或者你把错误级别调高了?
你能确保代码没问题,这个可以忽略,但是良好的做法还是初始化一下

#4


CreateList_L函数的第一个参数要传地址,不然是按值传递,你分配的内存只是给了一个复制后的指针