[C] Struktury

lubiejapka
Użytkownik
Użytkownik
Posty: 34
Rejestracja: 8 lut 2014, o 18:05
Płeć: Mężczyzna
Lokalizacja: pkow
Podziękował: 13 razy

[C] Struktury

Post autor: lubiejapka »

Witam,
proszę o sprawdzenie, czy dobrze zrobiłem zadanie:
Zdefiniować strukturę 'Dane' posiadającą dwa pola składowe: znak oraz tablice 10 znakową. Zadeklarować i jednocześnie zainicjować zmienną typu strukturalnego 'Dane' dowolnymi wartościami. Zadeklarować wskaźnik typu strukturalnego 'Dane'. Za jego pomocą utworzyć dynamicznie obiekt struktury i skopiować do niego wartości pól składowych utworzonej na początku zmiennej strukturalnej. Zwolnić pamięć.
Program:

Kod: Zaznacz cały

#include <stdio.h>
#include <stdlib.h>

struct Dane{
       char znak;
       char napis[10];
};

int main(int argc, char *argv[])
{
  struct Dane Dane={'a',"abcde"};
  struct Dane *wsk;
  printf("ZNAK:%c,NAPIS:%s",Dane.znak,Dane.napis);
  
  wsk=(struct Dane*)malloc(sizeof(Dane));
  
  wsk->znak=Dane.znak;
  strcpy(wsk->napis,Dane.napis);
  printf("\nZNAK:%c,NAPIS:%s",wsk->znak,wsk->napis);  
    
  free(wsk);
  
  printf("\n\n");
  system("PAUSE");	
  return 0;
}
Fibik
Użytkownik
Użytkownik
Posty: 971
Rejestracja: 27 wrz 2005, o 22:56
Płeć: Mężczyzna
Lokalizacja: Wrocław
Podziękował: 11 razy
Pomógł: 75 razy

[C] Struktury

Post autor: Fibik »

Musisz chyba tam dać rozmiar 11 - extra 1 dla znaku zera na końcu, bo inaczej... bomba.

No chyba że użyjesz strncpy... a ten printf to nie wiem, może %.10s pomoże.
ODPOWIEDZ