Strona 2 z 2 PierwszyPierwszy 12
Pokaż wyniki 11 do 14 z 14

Temat: Tablice

  1. #11
    Zarejestrowany
    Sep 2007
    Skąd
    Tu
    Postów
    1,236

    Domyślnie

    Cytat Napisał Squealer Zobacz post
    Kod:
    char rpc[10]={'R', 'P', 'C', 'T', ' ', 'T', 'O', ':', ' ', '<'}; 
    char rpcr[12]={'s', 't', 'e', 'f', 'a', 'n', '@', 'o', '2', '.', 'p', 'l'};
    juz nie powiny byc bajty null (chyba)
    Zacznijmy od tego, ze elementy tablicy podaje sie w " " takich cydzyslowiach, nie ' ' takich, ' ' to (chyba) nie jest nawet specjalny znak w cpp, po kazdym elemencie tablicy wystepuje NULL bajt, tak to jest zbudowane, inaczej funkcje nie widzialy by gdzie sie konczy jeden element a zaczyna drugi nie wiem czy tak jest w przypadku objektow Int, bo Int ma przeciez okreslona dlugosc, wiec tablica mogla by w ciemno sobie zarezerwowac dokladnie tyle pamieci ile bedzie trzeba dla okreslonej liczby elementow int i wiedziec juz po tym ze sa w niej same int'y gdzie kazdy element bedzie sie znajdowal..
    Char niestety wyglada pod tym wzgledem troche inaczej, tutaj nie wiadomo jakiej dlugosci bedzie string, wiec potrzebny jest ten nullbyte.

    Jesli sie myle to prosze krzyczec.
    http://gogulas.yoyo.pl/h.gif

  2. #12

    Domyślnie

    hmm no tak, masz moze racje
    ale dziwne ze jak daje:
    Kod:
    char rpc[10]={'R', 'P', 'C', 'T', ' ', 'T', 'O', ':', ' ', '<'}; 
    char rpcr[12]={'s', 't', 'e', 'f', 'a', 'n', '@', 'o', '2', '.', 'p', 'l'};
    to:
    Kod:
    squ@sq:~/Desktop$ gcc lol.c -o lol 
    squ@sq:~/Desktop$
    a to
    Kod:
    char rpc[10]={"R", "P", "C", "T", " ", "T", "O", ":", " ", "<"}; 
    char rpcr[12]={"s", "t", "e", "f", "a", "n", "@", "o", "2", ".", "p", "l"};
    to sie nie kompiluje:
    Kod:
    squ@sq:~/Desktop$ gcc lol.c -o lol 
    lol.c: In function ‘main’:
    lol.c:4: error: excess elements in char array initializer
    lol.c:4: error: (near initialization for ‘rpc’)
    lol.c:4: error: excess elements in char array initializer
    lol.c:4: error: (near initialization for ‘rpc’)
    lol.c:4: error: excess elements in char array initializer
    lol.c:4: error: (near initialization for ‘rpc’)
    lol.c:4: error: excess elements in char array initializer
    lol.c:4: error: (near initialization for ‘rpc’)
    lol.c:4: error: excess elements in char array initializer
    lol.c:4: error: (near initialization for ‘rpc’)
    lol.c:4: error: excess elements in char array initializer
    lol.c:4: error: (near initialization for ‘rpc’)
    lol.c:4: error: excess elements in char array initializer
    lol.c:4: error: (near initialization for ‘rpc’)
    lol.c:4: error: excess elements in char array initializer
    lol.c:4: error: (near initialization for ‘rpc’)
    lol.c:4: error: excess elements in char array initializer
    lol.c:4: error: (near initialization for ‘rpc’)
    lol.c:5: error: excess elements in char array initializer
    lol.c:5: error: (near initialization for ‘rpcr’)
    lol.c:5: error: excess elements in char array initializer
    lol.c:5: error: (near initialization for ‘rpcr’)
    lol.c:5: error: excess elements in char array initializer
    lol.c:5: error: (near initialization for ‘rpcr’)
    lol.c:5: error: excess elements in char array initializer
    lol.c:5: error: (near initialization for ‘rpcr’)
    lol.c:5: error: excess elements in char array initializer
    lol.c:5: error: (near initialization for ‘rpcr’)
    lol.c:5: error: excess elements in char array initializer
    lol.c:5: error: (near initialization for ‘rpcr’)
    lol.c:5: error: excess elements in char array initializer
    lol.c:5: error: (near initialization for ‘rpcr’)
    lol.c:5: error: excess elements in char array initializer
    lol.c:5: error: (near initialization for ‘rpcr’)
    lol.c:5: error: excess elements in char array initializer
    lol.c:5: error: (near initialization for ‘rpcr’)
    lol.c:5: error: excess elements in char array initializer
    lol.c:5: error: (near initialization for ‘rpcr’)
    lol.c:5: error: excess elements in char array initializer
    lol.c:5: error: (near initialization for ‘rpcr’)
    squ@sq:~/Desktop$

  3. #13

    Domyślnie

    dobra panowie nie chodzi mi o charakterystykę tablic
    i tego jak je inicjować itp
    Problem w tym że przy użyciu strcat
    do połaczenia dwóch tablic i
    wysyłaniu tego do serwera jako adres odbiorcy
    serwer wariuje i nic nie zwraca
    nawet żadnego błędu ,totalna pustka (tak jakby się zawieśił )
    a kiedy wyśle to samo tylko bez kombinowania z funkcją strcat
    to wszytko gra
    Nie sądze aby była to wina null bajtów
    nie wiem na prawdę Jestem w kropce

  4. #14
    Zarejestrowany
    Sep 2007
    Skąd
    Tu
    Postów
    1,236

    Domyślnie

    Nic tylko przeanalizowac dzialanie funkcji strcat, jesli laczy ona tylko elementy tablic w string (nie wiem czy dobrze zrozumialem) to powinna byc krotka, w ostatecznosci napisz taka funkcje samodzielnie w razie problemow pisz, albo wpadnij na jakies cpp forum, bo tutaj stado demagogow bez praktyki (including me), hehe

    /edit

    ja bym to zrobil bez tablic, jesli jest taka mozliwosc. nie wiem tez co ta funkcja strcat chce dostac, ale podanie jej parametru poczatku jednoelementowej tablicy char, a podanie jednego elementu char, to chyba dla niej bez roznicy...

    Kod:
    char cz1 = "RPCT TO: <";
    char cz2;
    char cz3 = ">\n";
    
    cin >> cz2;
    
    char adres = cz1, cz2, cz3;
    czy jakos tak :P

    aha, znaki > < sa specjalne, ale (chyba) jesli usmiesci sie je w " " to sa nieaktywne, zabijalo sie je (chyba) przez dodanie prze nimi \ , jesli jednak kompitalor nie wyje to powinno byc dobrze bez tego..

    /edit2
    Cos mi sie jednak wydaje, ze ta funkcja sluzy do zlepiania wielu elementow tablicy w pojedynczy string...
    Ostatnio edytowane przez gogulas : 11-16-2007 - 16:59
    http://gogulas.yoyo.pl/h.gif

Strona 2 z 2 PierwszyPierwszy 12

Podobne wątki

  1. Tablice zmiennych (zielony)
    By soovek in forum Perl/Python/TCL/Prolog
    Odpowiedzi: 6
    Autor: 10-15-2007, 16:11

Zasady Postowania

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •  
Subskrybuj