Witam,
program sie wywala przy poniższej linijce :
strcpy((tab[i].nazwa), buffer);
Podejrzewam że może byc zły przydział pamięci . Dziękuje za pomoc z góry.
#include <stdio.h>
#include <stdlib.h> //malloc, free, sprintf
#include <time.h> //srand, rand
#include <string.h> //strcpy
typedef struct Dane Dane;
struct Dane
{
float wartosc;
char nazwa[10];
};
//funkcja wypisuje cala tablice wartosci, w jednym wierszu wypisuje 10 liczb
void wypiszTablice(Dane *tablica, const int wt)
{
int i = 0; //iterator petli
for(i = 0; i < wt; ++i)
{
if(i % 10 == 0) printf("\n");
printf("%f", tablica[i].wartosc);
}
}
int main()
{
int wielkoscTablicy;
Dane *tab =(Dane*) malloc(wielkoscTablicy * sizeof(Dane));
int i; //iterator petli for
char buffer[20]; //buffor ktory przechowuje przeknwertowana wartosc z int na string
float tmp; //zawiera zmienna losowa typu float
srand(time(NULL));
//wypelnienie tablicy danymi
for(i = 0; i < 3; ++i)
{
printf("Tu jestem1 \n");
sprintf(buffer, "%i", i);
puts(buffer);
strcpy((tab[i].nazwa), buffer);
printf("Tu jestem3\n");
printf("%s",tab[i].nazwa);
tmp = 23.46;
// printf("%f",tmp);
// tab[i].wartosc = tmp;
// printf("%f", tab[i].wartosc);
}
// wypiszTablice(tab, 3);
free(tab);
return 0;
}
dodanie znacznika <code class="c"> - fp