首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >函数调用中的Malloc似乎在返回时被释放了?

函数调用中的Malloc似乎在返回时被释放了?
EN

Stack Overflow用户
提问于 2008-09-19 20:44:51
回答 5查看 19K关注 0票数 16

我想我已经把它归结为最基本的情况:

代码语言:javascript
复制
int main(int argc, char ** argv) {
  int * arr;

  foo(arr);
  printf("car[3]=%d\n",arr[3]);
  free (arr);
  return 1;
}

void foo(int * arr) {
  arr = (int*) malloc( sizeof(int)*25 );
  arr[3] = 69;
}

输出是这样的:

代码语言:javascript
复制
> ./a.out 
 car[3]=-1869558540
 a.out(4100) malloc: *** error for object 0x8fe01037: Non-aligned pointer
                         being freed
 *** set a breakpoint in malloc_error_break to debug
>

如果有人能说明我的理解有什么问题,我将不胜感激。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/105477

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档