[英]Printf not showing and return value 3221225477
C和程序设计的新手,因此在与数组和指针结合使用时,对结构来说我遇到了一段艰难的时期。 我试图尝试创建一个结构,然后创建一个数组指针(指向该结构)重复10次。 然后找到每个结构的平均值并打印出来。
在循环之前,一切似乎都正常工作,提供的返回值为0。
#include <stdio.h>
#include <stdlib.h>
typedef struct Tries {
float attempts1;
float attempts2;
float attempts3;
float aver;
}Try;
int main(int argc, char *argv[]) {
int i,size=10,at1,at2,at3;
Try** arrayofTries= malloc (sizeof(Try)*size);
for (i=0;i<size;i++){
arrayofTries[i]->attempts1= rand () %(900 - 700)+700;
arrayofTries[i]->attempts2= rand () %(900 - 700)+700;
arrayofTries[i]->attempts3= rand () %(900 - 700)+700;
at1= arrayofTries[i]->attempts1;
at2= arrayofTries[i]->attempts2;
at3=arrayofTries[i]->attempts3;
arrayofTries[i]->aver = (at1+at2+at3)/3;
printf ("The average of %d person is%f",i,arrayofTries[i]->aver);
}
return 0;
}
arrayofTries
的类型应为Try *
not Try **
Try *arrayofTries = malloc (sizeof(Try) * size);
因此,所有->
应该都是简单的点.
。
您正在分配一个指向Try
指针,但没有分配到元素本身的直接指针。 看来您的意图是声明一个1D数组,而不是2D数组,因此您应该做的是将arrayofTries
的类型从Try **
更改为Try *
。
另外,当您完成使用malloc
分配的malloc
,请free
它:
free(arrayofTries);
arrayofTries = NULL;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.