各位大虾,帮我找下错误,急。。。谢谢

白发苍苍十指僵 2010-02-25 12:39:48
int matrix(const int*A, const int*B, int sizeA, int sizeB,
int * res)
{
int i =0;
res = (int*)malloc(sizeA * sizeof(int));

if(sizeA != sizeB)
{
return -1;
}

for(i=0; i< sizeA; i++)
{
*res = *A++ + *B++;
}
}
...全文
76 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
iisbsd 2010-02-25
  • 打赏
  • 举报
回复
没说什么错误信息,那就挑刺吧:

- 应该先比较sizeA和sizeB,不然分配了的内存就泄漏掉了
- malloc之前应该确定sizeA不是负数或者零,或者sizeA和sizeB干脆都换成size_t类型,这个问题也会影响到for语句是不是死循环
- malloc以后检查一下res是不是有效指针
- 最后没有return语句
- 参数里面的int * res很怪异,貌似你想函数调用完毕后res指向有效的指针,那就应该是int ** res,如果是这样的话,应该用realloc,避免原先res已经指向有效地址

别的好像没了……
谭海燕 2010-02-25
  • 打赏
  • 举报
回复
引用 1 楼 iisbsd 的回复:
没说什么错误信息,那就挑刺吧:

- 应该先比较sizeA和sizeB,不然分配了的内存就泄漏掉了
- malloc之前应该确定sizeA不是负数或者零,或者sizeA和sizeB干脆都换成size_t类型,这个问题也会影响到for语句是不是死循环
- malloc以后检查一下res是不是有效指针
- 最后没有return语句
- 参数里面的int * res很怪异,貌似你想函数调用完毕后res指向有效的指针,那就应该是int ** res,如果是这样的话,应该用realloc,避免原先res已经指向有效地址

别的好像没了……



顶。。


LZ还是贴出报错代码才好分析
steptodream 2010-02-25
  • 打赏
  • 举报
回复
楼上分析的好

23,115

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧