Problema com um código [RESOLVIDO]

1. Problema com um código [RESOLVIDO]

João Victor R. Melo
João Melo

(usa Ubuntu)

Enviado em 24/09/2017 - 15:57h

#include <stdlib.h>
#include <string.h>
#include <iostream>
using namespace std;
int main() {
int function[10][10]={};
int b = 0;
int c;
for(int x=0; x<=10; x++){
b++;
c += b;
for(int y=0; y<=10; y++){
string end = (y<9) ? ", " : "endl";
function[x][y] = c + y;
cout << function[x][y] << end;
}
}
system ("pause");
return 0;
}
O resultado tem saído lixo de memória, e não resultados como deveria. Intrigante é que se eu eliminar a função ternária, ele funciona normalmente. Qualquer coisa faço upload no Github. Obrigado desde já !


  


2. MELHOR RESPOSTA

Paulo
paulo1205

(usa Ubuntu)

Enviado em 24/09/2017 - 16:29h

João Melo escreveu:

#include <stdlib.h>
#include <string.h>
#include <iostream>
using namespace std;
int main() {
int function[10][10]={};


Você declarou uma matriz cujos índices, em ambas as dimensões, podem variar de 0 a 9 (dez valores ao todo, portanto). No entanto, seus loops têm índices que variam de 0 a 10 (onze valores), extrapolando o espaço de memória alocado para a matriz. Isso é um problema gravíssimo.

 int b = 0;
int c;
for(int x=0; x<=10; x++){
b++;


Se esse b é sempre igual a x+1, por que usar essa segunda variável? Por que não fazer simplesmente c+=x+1?

   c += b;
for(int y=0; y<=10; y++){
string end = (y<9) ? ", " : "endl";


Tem certeza de que você quer o texto “endl” atribuído à variável end? Será que você não gostaria de, simplesmente, atribuir “\n” a essa variável?

function[x][y] = c + y;
cout << function[x][y] << end;
}
}
system ("pause");
return 0;
}

O resultado tem saído lixo de memória, e não resultados como deveria. Intrigante é que se eu eliminar a função ternária, ele funciona normalmente. Qualquer coisa faço upload no Github. Obrigado desde já !



3. Obrigado

João Victor R. Melo
João Melo

(usa Ubuntu)

Enviado em 25/09/2017 - 16:44h

Ah, obrigado ! Estava um tanto confuso quanto ao array. Na verdade se eu declarar por exemplo int x[5], este array tem 5(0,1,2,3,4) ou 6(0,1,2,3,4,5) elementos ?






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts