| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3857 人关注过本帖
标题:初始化的局部变量错误(应该很易错的问题,望解答)
只看楼主 加入收藏
c小白2333
Rank: 5Rank: 5
来 自:中国
等 级:贵宾
威 望:11
帖 子:121
专家分:367
注 册:2019-6-17
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:5 
初始化的局部变量错误(应该很易错的问题,望解答)
麻烦帮看一下 如何解决
程序代码:
#include <stdio.h>
#include <stdbool.h>
#include <malloc.h>

#define MAXSIZE 100

typedef struct Arr
{
    int* pArr;
    int len;
    int cnt;
} Arr, * pArr;
void InitArr(pArr A);
int main(void)
{
    pArr A;
    InitArr(A);
    return 0;
}
void InitArr(pArr A)
{

    A->pArr = (int*)malloc(sizeof(int) * MAXSIZE);
    A->len = MAXSIZE;
    A->cnt = 0;
}

编译时错误:
严重性    代码    说明    项目    文件       禁止显示状态
警告    C6001    使用未初始化的内存“A”。    10.16初始化问题    C:\USERS\94497\SOURCE\REPOS\10.16初始化问题\源.C    17   
错误    C4700     使用了未初始化的局部变量“A”    10.16初始化问题    C:\Users\94497\source\repos\10.16初始化问题\源.c    17   


[此贴子已经被作者于2019-10-16 22:23编辑过]

搜索更多相关主题的帖子: 错误 int 初始化 void 局部变量 
2019-10-16 21:52
c小白2333
Rank: 5Rank: 5
来 自:中国
等 级:贵宾
威 望:11
帖 子:121
专家分:367
注 册:2019-6-17
收藏
得分:0 
原程序改成这样就没问题了
为什么第一种错误呢?
程序代码:
#include <stdio.h>
#include <stdbool.h>
#include <malloc.h>

#define MAXSIZE 100

typedef struct Arr
{
    int* pArr;
    int len;
    int cnt;
} Arr, * pArr;
void InitArr(Arr * A);
int main(void)
{
    Arr A;
    InitArr(&A);
    printf("%d %d", , A.len);
    return 0;
}
void InitArr(Arr * A)
{
    A->pArr = (int*)malloc(sizeof(int) * MAXSIZE);
    A->len = MAXSIZE;
    A->cnt = 0;
}


宝剑锋从磨砺出,梅花香自苦寒来。
2019-10-16 22:20
bcbbcclbbc
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:11
帖 子:194
专家分:528
注 册:2019-8-15
收藏
得分:10 
第一个:定义了一个结构体指针变量,但没有给它赋值,直接使用,肯定是会出问题的。(指针变量存放的是地址,只定义不初始化是不能直接使用的)
而第二个定义的是一个结构体变量,再将它的地址做实参传递给函数InitArr。
2019-10-17 02:16
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:10 
去除无关代码的干扰后,第一段代码相当于
程序代码:
void InitArr( int* A )
{
    *A = 0;
}
int main(void)
{
    int* A;
    InitArr( A );
}

第二段代码相当于
程序代码:
void InitArr( int* A )
{
    *A = 0;
}
int main(void)
{
    int A;
    InitArr( &A );
}
2019-10-17 09:00
c小白2333
Rank: 5Rank: 5
来 自:中国
等 级:贵宾
威 望:11
帖 子:121
专家分:367
注 册:2019-6-17
收藏
得分:0 
回复 4楼 rjsp
有点理解了  谢谢

宝剑锋从磨砺出,梅花香自苦寒来。
2019-10-17 21:10
c小白2333
Rank: 5Rank: 5
来 自:中国
等 级:贵宾
威 望:11
帖 子:121
专家分:367
注 册:2019-6-17
收藏
得分:0 
回复 3楼 bcbbcclbbc
谢谢

宝剑锋从磨砺出,梅花香自苦寒来。
2019-10-17 21:10
快速回复:初始化的局部变量错误(应该很易错的问题,望解答)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020992 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved