#include <stdio.h>
#include <stdlib.h>
main()
{
float *tab, x;
int size = 8, count = 0, i;
tab = (float*)malloc(size * sizeof(float));
printf("daj liczbe:\n");
while (scanf("%f", &x) == 1) {
if (count + 1 > size) {
size *= 2;
tab = (float*)realloc(tab, size * sizeof(float));
}
tab[count++] = x;
for (i = 0; i < count; i++)
printf("%f\n", tab[i]);
free(tab);
}
}
Program ma za zadanie rozszerzyć tablicę w momencie jak się zapełni, nie działa bo program się crashuje po osmiu liczbach+ nie rozumiem bo gdy mamy np.void *realloc(void p,size_t size) to ta gwiazdka przy realloc wskazuje że to jest odniesie do wartości czy adresu bo nie ogarniam jak to jest że tab = (float)malloc(size * sizeof(float)); ale przy definicji malloc jest void *malloc(size_t size) czyli dlaczego nie może być tab = (float)malloc(size * sizeof(float)); bo jak mam inny program ktory ma za zadanie skopiować tablicę
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
char *strcopy(char *src){ int i=0;
char *target;
target=(char*)calloc(strlen(src),sizeof(char));
if(target!=NULL)
while((target[i]=src[i])!='\0')
i++;
return target;
}
int main(){
char *x="Hello World!";
char *newarr=strcopy(x);
printf(newarr);
free(newarr);
}
to tam już jest char *newarr=strcopy(x); a nagłówek char *strcopy(char *src) ma gwiazdkę czyli chodzi o wpisanie wartosci do newarr nie rozumiem tego dlaczego tu jest newarr a tam tab = (float)malloc(size * sizeof(float)); moze powiedzcie co oznacza ta gwidka przy definicji jakiejkolwiek funkcji bo coś może źle rozumiem ;/