Anonymní profil ondra – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil ondra – Programujte.comAnonymní profil ondra – Programujte.com

 

Příspěvky odeslané z IP adresy 85.70.169.–

C / C++ › Pointery v C
5. 12. 2013   #184798

Zdravím, už nějakou dobu se trápím s pochopením pointerů. Našel jsem si jednoduchý příklad:

 #include <stdio.h>
 int main(void)
 { 
	int *pz;
   	int z;
   	pz = &z;  
   	*pz = 1;   
  	printf("%p\n", pz); 
   	printf("%d", *pz);        
     return 0;
  }

První print vypíše adresu proměnné z, druhý číslo 1. Ale zakomentuju-li pz = &z; , tak program při kompilaci sletí. Mohl by mi někdo říci proč? Vůbec nechápu souvislost. 

Děkuji

C / C++ › Const v jazyce C
25. 11. 2013   #184369

Zdravím, mám program, kde si definuji konstantu pomocí const.  Poté chci konstantu změnit. Mám následující:

#include <stdio.h>

int main() {
    int j;
    const int hodnota = 10;
    int *p1 = &hodnota;
    printf("%d", hodnota);
    *p1 = 12;
    printf("Je hodnota zmenena? %d", hodnota);   
       
     }

A stále se mi při kompilaci vypisuje hláška: warning: initialization discards 'const' qualifier from pointer targ
et type [enabled by default]
. Vůbec netuším, co je ještě špatně.

Děkuji za nápovědu

C / C++ › ŠPatné počítání znaků v soub…
21. 11. 2013   #184200

Zdravím, pokusil jsem si napsat skript na počítání znaků, kde chci zjistit, kolik znaků je na nejdelším řádku:

#include <stdio.h>
#include <string.h>
#define CHYBA {printf("Soubor se nepodarilo otevrit/zavrit"); return 1;}
FILE *fr;

int otevri(void) {
    return((fr=fopen("DOPIS.TXT","r")) != NULL);
    }
int zavri(void) {
    return(fclose(fr) != EOF);
    }
    
int cti_radek(void) {
 int delka=0, c=0;
   while((c=getc(fr)) != EOF) {
      if(c == '\n') {
        return(delka+1);}
      else {
        delka++;
          }
        }
      return EOF;                      
    }
    int main(void) {
        int nejdelsi=0; 
        int aktualni=0;
          if(otevri() == 0) {
            CHYBA        
            }
            while((aktualni=cti_radek()) != EOF) {
              if (aktualni > nejdelsi) {
                nejdelsi = aktualni; 
              } 
            } 
            printf("Delka nejdelsiho radku je %d\n", nejdelsi);
              if (zavri() == 0) {
                   CHYBA                   
              }
                                          
           return 0; 
        }


Jenže neustále mi to vrací hodnotu 49. Dokázal by mi někdo pomoci najít chybu? Díky

ondra
C / C++ › Nelze kompilace pomocí příka…
21. 11. 2013   #184181

#5 Petr
Jo parada, diky za pomoc. Tak ted snad zase budu mit chut se ucit dal:-)

ondra
C / C++ › Nelze kompilace pomocí příka…
21. 11. 2013   #184178

#2 KIIV
Neměl jsem. Nyní když přidám, tak je to ok. Nyní když provedu kompilaci pomocí: gcc -o secti.exe secti.c, tak mi nejde zase v CMD spustit tento soubor.

Soubor je jednoduchy:

#include <stdio.h>
#include <ctype.h>
#include <stdlib.h>
int main() {}
int fce1() {
   int a, b;
   scanf("%d %d", &a, &b);
   return(a + b);                     
      
   }

Předešlé soubory jsem spouštěl jen nazev.exe. Dělám někde chybu teď? Díky

ondra
C / C++ › Nelze kompilace v příkazové…
21. 11. 2013   #184174

Zdravím, vytvářím jednoduché programy v jazyce C. Dokud jsem mel pojmenovanou funkci programu int main() {} , bylo vše v pořádku. Kompilace se dařila. Nyní jsem vytvořil jednoduchý program, kde jsem pojmenoval funkci int secti() {} a když chci kompilovat v CMD, tak to vypisuje hlášku: c:/mingw/bin/../lib/gcc/mingw32/4.7.0/../../../libmingw32.a(main.o):main.c:(.text.startup+0xa7): undefined reference to `_WinMain@16'

collect2.exe: error: ld returned 1 exit status

Kompilaci provádím: C:\Users\vasko\Projekty\vasko>gcc -o secti secti.c

Dokázal by mi někdo poradit, co může způsobovat tento problém?

ondra
C / C++ › Nelze kompilace pomocí příka…
21. 11. 2013   #184173

Zdravím, vytvářím jednoduché programy v jazyce C. Dokud jsem mel pojmenovanou funkci programu int main() {} , bylo vše v pořádku. Kompilace se dařila. Nyní jsem vytvořil jednoduchý program, kde jsem pojmenoval funkci int secti() {} a když chci kompilovat v CMD, tak to vypisuje hlášku: c:/mingw/bin/../lib/gcc/mingw32/4.7.0/../../../libmingw32.a(main.o):main.c:(.text.startup+0xa7): undefined reference to `_WinMain@16'

collect2.exe: error: ld returned 1 exit status

Kompilaci provádím: C:\Users\vasko\Projekty\vasko>gcc -o secti secti.c

Dokázal by mi někdo poradit, co může způsobovat tento problém?

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032021 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý