Это может являться стеком, верно ли используется malloc, указатели?

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

struct list{
    int data;
    struct list *next;
};

 int main(){
    int int_array[] = {255,2,3,4,5,6,7,8,9,458,46,54,12,45,465};
    int int_size_arr  = sizeof(int_array)/sizeof(*int_array);
    
    int arr[] = {};
    
    struct list *first=NULL, *last = NULL, *tmp;
        int i;
        for(i = 0; i < int_size_arr; i++){
            tmp = malloc(sizeof(struct list));
        //tmp = (struct list*)malloc(sizeof(struct list));
            if(!first){
                first = tmp;
                last = first;
            }else{
                last->next = tmp;
                last = last->next;
            }
            last->data = int_array[i];
            last->next = NULL;
            
            arr[i] = last->data;
            
        }
    
    for(i = 0; i < int_size_arr; i++)
        printf("%d ", arr[i]);
    
    return 0;
}

Ответы (0 шт):