отображение памяти apple отличается от обычного 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;
}

Извините за публикацию такого большого количества кода, но есть разница с выводом обычного компилятора и компилятора gcc на моем компьютере. Я уже установил инструменты командной строки xcode, которые предоставляют llvm-gcc, gcc, clang и т. Д.

Выход на Mac похож на 2 3 4 5 6 7 8 1644757086 <——- мусор или случайный (я не знаю)

это не только один раз много раз, когда я запускаю любую программу, значения искажаются на Mac, но это хорошо работает с любым вводом на gcc
посмотри здесь http://ideone.com/Psubk2
пожалуйста, помогите прояснить это и предложить также хороший инструмент отладки, так как на среднем уровне я считаю, что GDB немного времени

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]