prawie gotowy program 2d dwuwymiarowa dynamiczna struktura

0

Program mi siekompiluje i dobrze działa ale valgrind pokazuje mi takie błędy:

==15470== Conditional jump or move depends on uninitialised value(s)
==15470== at 0x4C30F78: strlen (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==15470== by 0x4F49228: std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==15470== by 0x400C6E: main (main.cpp:47)
==15470==
16.
17.
18.
sh: 1: pause: not found
21.
22.
23.
24.
25.
==15470== Conditional jump or move depends on uninitialised value(s)
==15470== at 0x4C30F78: strlen (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==15470== by 0x4F49228: std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==15470== by 0x400DC8: main (main.cpp:56)
==15470==

#include <iostream>
#include <fstream>
#include <conio.h>
#include <stdlib.h>
#include <string>

using namespace std;

void function1(struct struktura1 **a2);
struct struktura1//before main()
{
     char temp22[2][4];
};

int main()
{

   int ile_walut_wczytac=4;
  int  ile_dni_pobrac_z_bazy_danych=5;



 struktura1 **a2= new struktura1*[ile_dni_pobrac_z_bazy_danych];
 for(int i=0;i<ile_dni_pobrac_z_bazy_danych;i++)
 {
    a2[i]= new struktura1[ile_walut_wczytac];
 }

function1(a2);



cout<<a2[0][0].temp22[0]<<endl;
cout<<a2[0][0].temp22[1]<<endl;
cout<<a2[0][1].temp22[0]<<endl;
cout<<a2[0][1].temp22[1]<<endl;
cout<<a2[0][2].temp22[0]<<endl;
cout<<a2[0][2].temp22[1]<<endl;
cout<<a2[0][3].temp22[0]<<endl;
cout<<a2[0][3].temp22[1]<<endl;
system("pause");
cout<<a2[1][0].temp22[0]<<endl;
cout<<a2[1][0].temp22[1]<<endl;
cout<<a2[1][1].temp22[0]<<endl;
cout<<a2[1][1].temp22[1]<<endl;
cout<<a2[1][2].temp22[0]<<endl;
cout<<a2[1][2].temp22[1]<<endl;
cout<<a2[1][3].temp22[0]<<endl;
cout<<a2[1][3].temp22[1]<<endl;
system("pause");
cout<<a2[2][0].temp22[0]<<endl;
cout<<a2[2][0].temp22[1]<<endl;
cout<<a2[2][1].temp22[0]<<endl;
cout<<a2[2][1].temp22[1]<<endl;
cout<<a2[2][2].temp22[0]<<endl;
cout<<a2[2][2].temp22[1]<<endl;
cout<<a2[2][3].temp22[0]<<endl;
cout<<a2[2][3].temp22[1]<<endl;
system("pause");
cout<<a2[3][0].temp22[0]<<endl;
cout<<a2[3][0].temp22[1]<<endl;
cout<<a2[3][1].temp22[0]<<endl;
cout<<a2[3][1].temp22[1]<<endl;
cout<<a2[3][2].temp22[0]<<endl;
cout<<a2[3][2].temp22[1]<<endl;
cout<<a2[3][3].temp22[0]<<endl;
cout<<a2[3][3].temp22[1]<<endl;
system("pause");
cout<<a2[4][0].temp22[0]<<endl;
cout<<a2[4][0].temp22[1]<<endl;
cout<<a2[4][1].temp22[0]<<endl;
cout<<a2[4][1].temp22[1]<<endl;
cout<<a2[4][2].temp22[0]<<endl;
cout<<a2[4][2].temp22[1]<<endl;
cout<<a2[4][3].temp22[0]<<endl;
cout<<a2[4][3].temp22[1]<<endl;

    for(int i=0;i<ile_dni_pobrac_z_bazy_danych;i++)
    {
        delete [] a2[i];
    }
    delete [] a2;

system("pause");
    return 0;
}


void function1(struct struktura1 **a2)
{
    a2[0][0].temp22[0][0]='1';
    a2[0][0].temp22[0][1]='.';
    a2[0][0].temp22[0][2]='0';
    a2[0][0].temp22[0][3]='\0';

    a2[0][0].temp22[1][0]='2';
    a2[0][0].temp22[1][1]='.';
    a2[0][0].temp22[1][2]='0';
    a2[0][0].temp22[1][3]='\0';

    a2[0][1].temp22[0][0]='3';
    a2[0][1].temp22[0][1]='.';
    a2[0][1].temp22[0][2]='0';
    a2[0][1].temp22[0][3]='\0';

    a2[0][1].temp22[1][0]='4';
    a2[0][1].temp22[1][1]='.';
    a2[0][1].temp22[1][2]='0';
    a2[0][1].temp22[1][3]='\0';

    a2[0][2].temp22[0][0]='5';
    a2[0][2].temp22[0][1]='.';
    a2[0][2].temp22[0][2]='0';
    a2[0][2].temp22[0][3]='\0';

    a2[0][2].temp22[1][0]='6';
    a2[0][2].temp22[1][1]='.';
    a2[0][2].temp22[1][2]='0';
    a2[0][2].temp22[1][3]='\0';

    a2[0][3].temp22[0][0]='7';
    a2[0][3].temp22[0][1]='.';
    a2[0][3].temp22[0][2]='0';
    a2[0][3].temp22[0][3]='\0';

    a2[0][3].temp22[1][0]='8';
    a2[0][3].temp22[1][1]='.';
    a2[0][3].temp22[1][2]='0';
    a2[0][3].temp22[1][3]='\0';





    a2[1][0].temp22[0][0]='1';
    a2[1][0].temp22[0][1]='1';
    a2[1][0].temp22[0][2]='.';
    a2[1][0].temp22[0][3]='\0';

    a2[1][0].temp22[1][0]='1';
    a2[1][0].temp22[1][1]='2';
    a2[1][0].temp22[1][2]='.';
    a2[1][0].temp22[1][3]='\0';

    a2[1][1].temp22[0][0]='1';
    a2[1][1].temp22[0][1]='3';
    a2[1][1].temp22[0][2]='.';
    a2[1][1].temp22[0][3]='\0';

    a2[1][1].temp22[1][0]='1';
    a2[1][1].temp22[1][1]='4';
    a2[1][1].temp22[1][2]='.';
    a2[1][1].temp22[1][3]='\0';

    a2[1][2].temp22[0][0]='1';
    a2[1][2].temp22[0][1]='5';
    a2[1][2].temp22[0][2]='.';
    a2[1][2].temp22[0][3]='\0';

    a2[1][2].temp22[1][0]='1';
    a2[1][2].temp22[1][1]='6';
    a2[1][2].temp22[1][2]='.';
    a2[0][2].temp22[1][3]='\0';

    a2[1][3].temp22[0][0]='1';
    a2[1][3].temp22[0][1]='7';
    a2[1][3].temp22[0][2]='.';
    a2[1][3].temp22[0][3]='\0';

    a2[1][3].temp22[1][0]='1';
    a2[1][3].temp22[1][1]='8';
    a2[1][3].temp22[1][2]='.';
    a2[1][3].temp22[1][3]='\0';



    a2[2][0].temp22[0][0]='2';
    a2[2][0].temp22[0][1]='1';
    a2[2][0].temp22[0][2]='.';
    a2[2][0].temp22[0][3]='\0';

    a2[2][0].temp22[1][0]='2';
    a2[2][0].temp22[1][1]='2';
    a2[2][0].temp22[1][2]='.';
    a2[2][0].temp22[1][3]='\0';

    a2[2][1].temp22[0][0]='2';
    a2[2][1].temp22[0][1]='3';
    a2[2][1].temp22[0][2]='.';
    a2[2][1].temp22[0][3]='\0';

    a2[2][1].temp22[1][0]='2';
    a2[2][1].temp22[1][1]='4';
    a2[2][1].temp22[1][2]='.';
    a2[2][1].temp22[1][3]='\0';

    a2[2][2].temp22[0][0]='2';
    a2[2][2].temp22[0][1]='5';
    a2[2][2].temp22[0][2]='.';
    a2[2][2].temp22[0][3]='\0';

    a2[2][2].temp22[1][0]='2';
    a2[2][2].temp22[1][1]='6';
    a2[2][2].temp22[1][2]='.';
    a2[0][2].temp22[1][3]='\0';

    a2[2][3].temp22[0][0]='2';
    a2[2][3].temp22[0][1]='7';
    a2[2][3].temp22[0][2]='.';
    a2[2][3].temp22[0][3]='\0';

    a2[2][3].temp22[1][0]='2';
    a2[2][3].temp22[1][1]='8';
    a2[2][3].temp22[1][2]='.';
    a2[2][3].temp22[1][3]='\0';



    a2[3][0].temp22[0][0]='3';
    a2[3][0].temp22[0][1]='1';
    a2[3][0].temp22[0][2]='.';
    a2[3][0].temp22[0][3]='\0';

    a2[3][0].temp22[1][0]='3';
    a2[3][0].temp22[1][1]='2';
    a2[3][0].temp22[1][2]='.';
    a2[3][0].temp22[1][3]='\0';

    a2[3][1].temp22[0][0]='3';
    a2[3][1].temp22[0][1]='3';
    a2[3][1].temp22[0][2]='.';
    a2[3][1].temp22[0][3]='\0';

    a2[3][1].temp22[1][0]='3';
    a2[3][1].temp22[1][1]='4';
    a2[3][1].temp22[1][2]='.';
    a2[3][1].temp22[1][3]='\0';

    a2[3][2].temp22[0][0]='3';
    a2[3][2].temp22[0][1]='5';
    a2[3][2].temp22[0][2]='.';
    a2[3][2].temp22[0][3]='\0';

    a2[3][2].temp22[1][0]='3';
    a2[3][2].temp22[1][1]='6';
    a2[3][2].temp22[1][2]='.';
    a2[3][2].temp22[1][3]='\0';

    a2[3][3].temp22[0][0]='3';
    a2[3][3].temp22[0][1]='7';
    a2[3][3].temp22[0][2]='.';
    a2[3][3].temp22[0][3]='\0';

    a2[3][3].temp22[1][0]='3';
    a2[3][3].temp22[1][1]='8';
    a2[3][3].temp22[1][2]='.';
    a2[3][3].temp22[1][3]='\0';




    a2[4][0].temp22[0][0]='4';
    a2[4][0].temp22[0][1]='1';
    a2[4][0].temp22[0][2]='.';
    a2[4][0].temp22[0][3]='\0';

    a2[4][0].temp22[1][0]='4';
    a2[4][0].temp22[1][1]='2';
    a2[4][0].temp22[1][2]='.';
    a2[4][0].temp22[1][3]='\0';

    a2[4][1].temp22[0][0]='4';
    a2[4][1].temp22[0][1]='3';
    a2[4][1].temp22[0][2]='.';
    a2[4][1].temp22[0][3]='\0';

    a2[4][1].temp22[1][0]='4';
    a2[4][1].temp22[1][1]='4';
    a2[4][1].temp22[1][2]='.';
    a2[4][1].temp22[1][3]='\0';

    a2[4][2].temp22[0][0]='4';
    a2[4][2].temp22[0][1]='5';
    a2[4][2].temp22[0][2]='.';
    a2[4][2].temp22[0][3]='\0';

    a2[4][2].temp22[1][0]='4';
    a2[4][2].temp22[1][1]='6';
    a2[4][2].temp22[1][2]='.';
    a2[4][2].temp22[1][3]='\0';

    a2[4][3].temp22[0][0]='4';
    a2[4][3].temp22[0][1]='7';
    a2[4][3].temp22[0][2]='.';
    a2[4][3].temp22[0][3]='\0';

    a2[4][3].temp22[1][0]='4';
    a2[4][3].temp22[1][1]='8';
    a2[4][3].temp22[1][2]='.';
    a2[4][3].temp22[1][3]='\0';
}

0

Nie widzę w kodzie instrukcji warunkowych zależnych od niezainicjalizowanych wartości (co nie znaczy że ich nie ma) Ale nie widzę też dowodów na to, że masz sprawną spację, ani żadnych argumentów za tym, aby tego kodu nie zaorać i napisać od nowa, ale tym razem poprawnie, bez kopiego pejsta, bez new i delete, z sensownymi nazwami zmiennych.

a2[2][2].temp22[1][0]='2';
a2[2][2].temp22[1][1]='6';
a2[2][2].temp22[1][2]='.';
a2[0][2].temp22[1][3]='\0';
// ^

Tak się kończy pisanie zobfuskowanego kodu, sam się oszukujesz.

1 użytkowników online, w tym zalogowanych: 0, gości: 1