想问一下malloc-free函数的具体用法

#include<stdio.h>#include<stdlib.h>intmain(){inti,j,*a,*c;scanf("%d",&i);//确定矩阵的阶数a=(... #include<stdio.h>
#include<stdlib.h>
int main()
{
int i,j,*a,*c;
scanf("%d",&i); //确定矩阵的阶数
a=(int*)malloc(sizeof(int)*i*i); //申请一个动态内存
c=a;

for(j=0;j<i*i;j++) //输入矩阵元素
{
scanf("%d",a);
a++;
}
for(j=0;j<i*i;j++) //输出矩阵……这个输出的没搞好,可以无视。
{
printf(" %d",c);
c++;
}
free (a);
return 0;
}
只是想试一下输入输出一个矩阵
我研究了一下好像是free(a);这个出了问题……
展开
 我来答
枫叶朴璐
2015-04-04 · TA获得超过2606个赞
知道大有可为答主
回答量:7573
采纳率:0%
帮助的人:5949万
展开全部
一般的做法是把malloc和free包装以后使用,再加入适当的调试代码。可以参考:编写无错的C程序的秘诀的电子版。比如:free(p)包装一个函数:
void Free(void *p) {
if (p != NULL) {
free(p);
p = NULL;
}
}
至于malloc,一般的做法是分配size个字节的内存时,多分配一个调试用的结构体,然后把这些结构体做成链表,可以通过查看这个链表找到野指针。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式