如何在不使用malloc的情况下使用这个程序?如果我使用temp.next=&newtemp
,程序工作没有错误吗?我必须学习如何避免malloc。
for(int ;;){
printf("Fusni N(numrin e qyteteve): "); scanf("%d", &N);
if(N<13 || N>100) {printf("Futet N gabimt( 13 < N < 100)nn");continue;}
M=1;
while(1){
p = q = malloc(sizeof(struct node));
p->id_qyteti = 1;
for (i = 2; i <= N; ++i) {
p->pas = malloc(sizeof(struct node));
p = p->pas;
p->id_qyteti = i;
}
p->pas = q;
printf("M=%d, Zonat ku nderpritet rryma:n", M);
for (count = N; count > 1; --count) {
printf("%d ",p->pas->id_qyteti); p->pas = p->pas->pas;
if(count==2)printf("nn");
for (i = 0; i < M - 1; ++i) p = p->pas;
}
if(p->id_qyteti==13)
{
printf("13.Tirana ngelet e funditn");
printf("M-ja minimale: %dn", M);
break;
}
else M++;
}}
return 0;
}
您可以将它用于数组,但问题是您将拥有有限的容量。例如,你可以有一个struct yourstruct[500];
和一个整数,显示下一个自由结构体在哪里,而不是错配,你会做一些像mynode->next = &yourstruct[i++]
这样的事情,当然,你必须有一个更好的控制,知道自由结构体在哪里。