首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

这终究哪错了?

2013-12-02 
这到底哪错了?????int ichar **pp (char**)malloc(10)for(i 0i 10i++){p[i] (char*)malloc(5

这到底哪错了?????
int i;
char **p;
p = (char**)malloc(10);
for(i = 0;i < 10;i++)
{
p[i] = (char*)malloc(5);
}

for(i = 0;i < 10;i++)
{
free(p[i]);
}

free(p);

运行到最后一句free(p);出错,为什么
[解决办法]
malloc的参数是内存大小,单位为字节
malloc(10);申请10字节内存,一个指针大小为4字节,这块内存只能存放两个半指针
使用malloc的时候输入“数量*sizeof(类型)”
[解决办法]

引用:
malloc的参数是内存大小,单位为字节
malloc(10);申请10字节内存,一个指针大小为4字节,这块内存只能存放两个半指针
使用malloc的时候输入“数量*sizeof(类型)”

+1

malloc的时候必须用sizeof来求啊..手动估计遇到内存对齐就完了。

热点排行