Tablica o zadanym rozmiarze

0

Witam
W szkole jako polecenie dostałem napisać funkcję,która tworzy tablice o zadanym rozmiarze i wyświetla ją.Próbowałem to zrobić,lecz program uruchomiony leci w nieskończoność i trzeba zamknąć wiersz poleceń.Potrafi mnie ktoś nakierować i powiedzieć co robie źle?

0

Zamieszczam tutaj funkcję bez fragmentu zwalniania pamięci,bo program do tego nawet nie dochodzi

void CreateTab(int size)
{
    int i,y;
    int *tab;
    tab = (int*)malloc(size * sizeof(int));
    i = tab;//początek tablicy
    y = tab + size*sizeof(int);//koniec tablicy
    for(tab;tab<(y);tab = tab+sizeof(int))
    {
        tab = rand();
        printf("%d \n",tab);
    }
}

2

A nie możesz od tak po prostu skorzystać z indeksów jak człowiek? Tym bardziej, że na wskaźnikach sobie nie radzisz za bardzo.

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

int main()
{
    size_t count = 15, i = 0;
    int *array = malloc(count * sizeof(int));
    for(; i < count; ++i)
    {
        array[i] = count * i;
        printf("%d\n",array[i]);
    }
    free(array);
    return 0;
}

Na wskaźnikach byłoby tak:

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

int main()
{
    srand(time(NULL));

    size_t count = 5;
    int *array = malloc(count * sizeof(int));
    int *iterator = array;

    for(;iterator != array + count; ++iterator)
    {
        *iterator = rand() % 100;
        printf("%d\n",*iterator);
    }

    free(array);
    return 0;
}
2

Zamień:

    for(tab;tab<(y);tab = tab+sizeof(int))
    {
        tab = rand();
        printf("%d \n",tab);
    }

na:

    for(i = 0; i < size; i++)
    {
        y = tab[i];
        printf("%d \n", y);
    }

1 użytkowników online, w tym zalogowanych: 0, gości: 1