Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Problem z Code Blocks.


Rekomendowane odpowiedzi

Opublikowano

Witam.

Dotychczas używałem do kompilowania C Visual Studio ale zaczęły z nim być problemu, nie spełniał najnowszych standardów, między innymi jeśli chodzi o tablice dlatego postanowiłem się przerzucić na C::B. I tu mam problem z Debuggerem. Ustawiam sobie brakepionta na początku kodu, następnie wybieram Step Into i w Visual Studio uruchamiał mi się tryb debugowania w którym sobie klawiszem F10 przechodziłem kolejne kroki i obserwowałem jak zmieniały się zmienne. W C::B po uruchomieniu Step Into normalnie uruchamia mi się program tak jakbym go uruchomił w zwykłym trybie bez debuggera. Nie mam nigdzie żadnego okna gdzie obserwuję zmienne i nie mam możliwości przechodzenia przez kolejne pętle tak jak to było w VS. Pomoże ktoś co może być nie tak? Pierwszy raz używam tego środowiska. Z góry wielkie dzięki.

Pozdrawiam.

Opublikowano

"nie spełniał najnowszych standardów, między innymi jeśli chodzi o tablice"

Czy możesz przytoczyć jakich standardów dotyczących tablic msvc nie spełniał?

 

http://wiki.codebloc...th_Code::Blocks

 

 

Jasne. Choćby taki prościutki przykład tablicy statycznej w VS nie chciał się kompilować:

#include <stdio.h>
#include <conio.h>

int main()
{
  int n,i;

  printf("Liczba elementow: ");
  scanf("%d", &n);

  int tab[n];

  for (i=0; i<n;i++)
  {
   printf("Liczba nr %d: ", i+1);
   scanf("%d", &tab[i]);
  }

   for (i=0; i<n;i++)
  {
   printf("%d\n", tab[i]);
  }
   getch();
   return 0;
}

 

Aby to działało w VS trzeba by robić w ten sposób:

int* tab = calloc(N, sizeof(int));
...
...
...
free(tab);

 

Jest to starszy sposób inicjalizowania tablic. Ten pierwszy jest prostszy i szybszy ale niestety, VS który zatrzymał się na standardzie C89 sobie z tym nie radzi. w C::B ten pierwszy kod chodzi bez najmniejszego problemu.

Opublikowano

prościej użyć new jeśli już.

 

@edit no tak nie przeczytałem że to C

Twoja stara robi catch the clowny w Game Makerze.

Opublikowano

@lupkio3

Czy odpaliłeś w ogóle link, który wstawiłem?

Działa?

- - - - - - - - - - - -

Jednak w takim przypadku zamiast zmieniać środowisko raczej spróbowałbym zupdate'owanie kompilatora do najnowszej wersji ( 2010 ).

 

 

 

 

@UP

Operator NEW nie istnieje w C.

Ta sygnatura jest pusta.

Opublikowano

Tak tak, dzięki, Twój link odpaliłem ale czy kompilator działa to nie wiem bo jutro rano to sprawdzę i dam na pewno znać czy się udało czy nie :).

Opublikowano

to nie działa ponieważ nie jest zgodne ze standardem i coś takiego nie istnieje(tzn. istnieje ale zamieniane jest na dynamiczną alokację-VLA)

btw. to Visual ma kompilator C?

Cytat

 

Orientacja seksualna polega na tym, że jeden mężczyzna lubi blondynki, drugi szatynki, że jedna pani woli umięśnionych mężczyzn a inna chudych intelektualistów. Homoseksualizm nie jest orientacją jest chorobą za którą homoseksualiści nie ponoszą odpowiedzialności. Pewna grupa ludzi rodzi się upośledzona fizycznie, na przykład bez ręki ale czy to znaczy, że wszystkim zdrowym powinniśmy też obcinać ręce? Nie, powinniśmy zapewnić im protezy. Obowiązkiem państwa jest zapewnienie homoseksualistom, jak wszystkim upośledzonym fizycznie czy psychicznie profesjonalnej opieki medycznej.

Opublikowano

Zgadza się, kompilator Microsoft C/C++ Optimizing Compiler który jest wbudowany w IDE VC++ nie wspiera najnowszego standardu C99. Oczywiście że można inizjalizować tablice przy użyciu malloc'a czy calloc'a ale wydaje mi się że używanie tablic VLA jest wygodniejsze i prostsze.

 

Tak tak, w Visualu C++ można kompilować również C. W opcjach wystarczy zaznaczyć że będziemy kompilowali kod w C bo domyślnie ustawiony jest C++.

 

A co do debuggera w C::B, już mi działa :). Problem okazał się być dość błahy. Przetrzymywałem projekty na pulpicie i chyba ścieżka była za długa lub nie podobało mu się że w ścieżce są polskie znaki. W każdym razie po przeniesieniu projektu bezpośrednio na inną partycję, wszystko działa :).

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...