Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Problem z tablicą

Ostatnio zmodyfikowano 2019-02-07 00:17
Autor Wiadomość
Pawełek
Temat założony przez niniejszego użytkownika
» 2019-02-06 00:42:52
Taki błąd mi wyskoczył

Assertion failed: i <= liczba, file D:\Projekty CB\first\591.cpp, line 26


Być może mam za dużo zmiennych o nazwie 'i'. Ale jest to problem jedynie w 'mało przejrzystym kodzie'. W programie wszystko działa jak należy bo każda ma swoją ważność i zostaje jedynie zasłoniona. Ja to bym nie zwalał winy na program. Bo problem jest z alokacją pamięci, nawet jak w programie 'hello world' dodam sobie taką tablicę to problem występuje. Zresztą najlepszym dowodem jest na to ten program

C/C++
#include <iostream>

int main()
{
    bool * tab;
    int liczba = 13150087;
    tab = new bool[ liczba + 1 ] { };
    std::cout << "OK: " <<( void * ) tab << '\n';
    delete[] tab;
    return 0;
}

Log:
OK: 0x9e1020

Process returned 0 (0x0)   execution time : 0.040 s
Press any key to continue.

Mimo to przy debugowaniu problem dalej występuje.
P-173877
pekfos
» 2019-02-06 01:01:01
Bo problem jest z alokacją pamięci, nawet jak w programie 'hello world' dodam sobie taką tablicę to problem występuje.
Ty wciąż o tym? To jest problem z GDB, nie z alokacją. Nie używaj tego zapisu, lub użyj nowszej wersji GDB (i nie, nie masz najnowszej wersji), lub innego debuggera, np tego z Visual Studio, na którym problem nie występuje.

Ja to bym nie zwalał winy na program.
W pewnym momencie będziesz musiał, bo jest błędny.
P-173878
Pawełek
Temat założony przez niniejszego użytkownika
» 2019-02-06 01:20:40
Skoro nie mam najnowszej wersji, to prosiłbym o jakiś link do najnowszej wersji z wytłumaczeniem jak to wszystko poustawiać, bo jestem tak zmęczony już tym problemem że nie jestem w stanie sam się nad tym zastanawiać i tego szukać. Naonant podesłał wcześniej ten link
https://medium.com/@yzhong.cs/code-blocks-compile-64-bit-under-windows-with-mingw-w64-79101f5bbc02
Robiłem wszystko tak jak autor tłumaczył i mimo to CB nie mógł znaleźć kompilatora.

A poza tym code blocks'a ściągnąłem z oryginalnej strony, razem z kompilatorem. Skoro GDB jest wadliwy to dlaczego tego nie naprawią? Jeśli to jest wina GDB to setki innych osób ma lub będzie miało taki problem.
P-173879
Pawełek
Temat założony przez niniejszego użytkownika
» 2019-02-06 09:39:27
Starting the debuggee failed: No executable specified, use `target exec'.
Drugi gdb wcale mi nie działa :/
P-173880
nanoant20
» 2019-02-06 11:36:44
musisz określić jeszcze ścieżkę debuggera.
Przejdź do "Settings" => "Debugger", zaznacz z lewej strony "Defualt"
i w polu Executable path: wprpwadź ścieżkę lub wybierz
Executable path: C:\MinGW\bin\gdb32.exe <---tutaj odpowiednia ścieżka
Kliknij O.K.

kiedyś opisałem konfiguracje tyle, że do 32-bit'owego
tdm-gcc

http://cpp0x.pl/forum/temat/?id=26191

i analogicznie trzeba zrobić do 64-bit

@EDIT
tak zgadza się , doczytałem teraz do końca

@EDIT
jedyne co mi przychodzi do głowy, to to że dałeś go do Program Files (x86)
gdzie w tej ścieżce jest spacja,
a w tamtym tutorjalu podaje na dysk C:\mingw64
P-173881
Pawełek
Temat założony przez niniejszego użytkownika
» 2019-02-06 11:53:29
Opis wstawianej grafiki
Opis wstawianej grafiki
 Wszystko mam dobrze ustawione. default przyda się przy starym kompilatorze, do nowego stowrzylem kopie 'gdb64' i ustawiłem w ustawieniach kompilatora go a nie default wiec wszystko się zgadza
P-173882
Pawełek
Temat założony przez niniejszego użytkownika
» 2019-02-06 12:07:26
Może cos w tych ustawieniach podczas instalacji kompilatora zle wybrałem?
Opis wstawianej grafiki
Opis wstawianej grafiki
 
a w tej ścieżce nie powinno być na końcu pliku gdb.exe? Bo w tym nowym kompilatorze nie ma pliku gdb32.exe

EDIT. cos jest nie tak bo w tym kompilatorze nie ma oddzielnego folderu z debuggerem, moja sciezka do pliku gdb to C:\Program Files\mingw64\mingw64\bin\gdb.exe

a w starym debuggerze (default) C:\Program Files (x86)\CodeBlocks\MinGW\gdb32\bin\gdb32.exe
P-173883
pekfos
» 2019-02-06 13:00:50
Spoiler: GDB 8.1 z tego buildu wciąż nie działa poprawnie w tym przypadku. Najnowsza to 8.2.1, ale musiałbyś ją sobie skompilować ze źródeł.

A poza tym code blocks'a ściągnąłem z oryginalnej strony, razem z kompilatorem. Skoro GDB jest wadliwy to dlaczego tego nie naprawią?
I co, pójdziesz zgłosić reklamację, że dołączone oprogramowanie ma buga? Gotowe buildy oprogramowania Open Source praktycznie nigdy nie są aktualne, a takie dołączone do środowiska typu C::B mają kilka lat więcej.
P-173886
1 2 3 « 4 » 5
Poprzednia strona Strona 4 z 5 Następna strona