Är 32-bitars kompilator bättre än 64-bitars för C++?

Här pratar vi programmering i dessa olika former. Perl, C/C++, Pascal, ADA, Lisp, COBOL, ZX Basic och mm.
Post Reply
Pelle-48
Posts: 36
Joined: 14 June 2011, 16:04

Är 32-bitars kompilator bättre än 64-bitars för C++?

Post by Pelle-48 » 3 January 2020, 11:02

Denna kod för nearest neighbour ger segmentation fault med g++ version 9.2.1 för x86_64 men inga problem på Raspberry Pi (Arm 32)

Code: Select all

#include<iostream>
using namespace std;

int c = 0, cost = 1000;
int g[3][3 ] = { {1,2,3},{4,5,8},{6,7,10}};

void swap(int *x, int *y) {
   int t;
   t = *x;
   *x = *y;
   *y = t;
}

void cal_sum(int *a, int n) {
   int i, s= 0;
   for (i = 0; i <= n; i++) {
      s+= g[a[i %3]][a[(i+ 1) %3]];
   }
   if (cost >s) {
      cost = s;
   }
}

void permute(int *a,int i,int n) {
   int j, k;
   if (i == n) {
      cal_sum (a,n);
   } else {
      for (j = i; j <= n; j++) {
         swap((a + i), (a + j));
         cal_sum(a+1,n);
         swap((a + i), (a + j));
      }
   }
}

int main() {
   int i, j;
   int a[] = {1,2,3};//take array elements
   permute(a, 0,2);
   cout << "minimum cost:" << cost << endl;
}
Några tips?

Pelle-48
Posts: 36
Joined: 14 June 2011, 16:04

Re: Är 32-bitars kompilator bättre än 64-bitars för C++?

Post by Pelle-48 » 4 January 2020, 22:25

Tydligen är det gcc för Raspberry PI som är ovanligt förlåtande.
Koden går "out of range".

Frågan är då om det är tvärt om för x86?
Alla använder 64bitar dvs få felsöker på 32bitar!
Jag har inte hittat någon gcc 32bit som följer c17 eller c++ som följer c++17.

Post Reply