apple memory mapping与普通gcc不同

时间:2013-08-01 15:32:21

标签: c++ macos gcc memory-leaks llvm-gcc

我很抱歉提出这个问题,但这个问题日复一日地变得如此痛苦

这是一个堆排序程序代码

#include<iostream>
#include<algorithm> //used for swap utility
using namespace std;

int lefty(int i) {
  return 2*i+1;
}

int righty(int i) {
  return 2*i+2;
}

void max_heapify(int b[],int i,int n) {
  int large;
  int left=lefty(i);
  int right=righty(i);
  if(left<=n && b[i]<b[left]) // <---- checks whether the root is less or greater than left child
    large=left;
  else
    large=i;
  if(right<=n && b[large]<b[right]) // <---- checks for right child
    large=right;
  if(large!=i) { //if this is not greater then place it to correct position
    swap(b[i],b[large]);
    max_heapify(b,large,n);    //recursive calls for placing the element to appropriate position
  }


}

void buildmaxheap(int* b,int n) {
  for(int i=n/2;i>=0;i--)   // n/2 used to optimize by checking only at half of the height
    max_heapify(b,i,n);
}

void heapsort(int* b,int n) {
  buildmaxheap(b,n);
  int end=n-1;
  while(end>0) {
    swap(b[0],b[end]);
    end=end-1;
    max_heapify(b,0,end);
  }


}
int main() {
  int a[]={6,5,3,1,8,7,2,4},i;
  int n=sizeof(a)/sizeof(a[0]);
  heapsort(a,n);
  for(int i=0;i<n;i++)
    cout<<a[i]<<" ";
  return 0;
}

很抱歉发布了这么多代码但是我的mac上普通gcc编译器和编译器的输出有所不同。我已经安装了xcode命令行工具,提供了llvm-gcc,gcc,clang等。

mac上的输出类似于2 3 4 5 6 7 8 1644757086 &lt; -------垃圾或随机(我不知道)

当我运行任何程序时,这不仅仅是一次多次在Mac上损坏了值,但它对gcc上的任何输入都有效 看看http://ideone.com/Psubk2 请帮助澄清这一点并建议良好的调试工具,因为在中级我发现GDB有点时间

0 个答案:

没有答案