关于结构体初始化异常的问题
最近在学习顺序表,在对结构体中的元素初始化赋值时发现赋值错误我将结构体中的data数组全部初始化为0,当我再次打印检查时,却发现结构体中data数组里面的值并不全是0
代码如下:
#include <stdio.h>
#include <stdlib.h>
#define MaxSize 10
typedef struct{
int data;
int length;
} SqList;
void InitList(SqList L){
for (int i = 0; i < MaxSize;i++){
L.data = 0;
}
L.length = 0;
}
int main(){
SqList L;
// L = (SqList *)malloc(sizeof(SqList));
InitList(L);
for (int i = 0; i < MaxSize;i++){
printf("%d ", L.data);
}
putchar('\n');
printf("%d", L.length);
return 0;
}
上诉代码运行结构如下:
0 0 0 0 8 0 4199705 0 8 0
0
请问到底是哪里出现了问题? #include <stdio.h>
#include <stdlib.h>
#define MaxSize 10
typedef struct{
int data;
int length;
} SqList;
//void InitList(SqList L){
void InitList(SqList *L){
for (int i = 0; i < MaxSize;i++){
//L.data = 0;
L->data = 0;
}
//L.length = 0;
L->length = 0;
}
int main(){
SqList L;
// L = (SqList *)malloc(sizeof(SqList));
//InitList(L);
InitList(&L);
for (int i = 0; i < MaxSize;i++){
printf("%d ", L.data);
}
putchar('\n');
//printf("%d", L.length);
printf("%d\n", L.length);
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#define MaxSize 10
typedef struct {
int data;
int length;
} SqList;
int main() {
SqList L = { {0}, 0 }; // 直接初始化
for (int i = 0; i < MaxSize; i++) {
printf("%d ", L.data);
}
putchar('\n');
printf("%d", L.length);
return 0;
} 人造人 发表于 2021-12-2 17:40
感谢您的解答!我之前代码的问题应该是出在了变量作用域上,谢谢! 傻眼貓咪 发表于 2021-12-2 18:14
感谢您的解答!
页:
[1]