【发布时间】:2017-10-02 22:15:09
【问题描述】:
#include <stdio.h>
#include <stdlib.h>
#define LEN 5
int main()
{
int i;
int count = 0;
size_t *ptr = malloc(sizeof(size_t)*LEN);
while(1){
for(i=0;i<LEN;i++){
scanf("%d",&ptr[i]);
}
for(i=0;i < ptr[i]; i++){
if(ptr = NULL || sizeof(ptr) < 0){
printf("nah");
} else if(ptr[i] == 7){
++count;
}
} printf("%d", count);
break;
}
free(ptr);
return 0;
}
我要做的是找到数字 7 在 malloc 中出现的次数。计数效果很好但是我应该如何证明如果 mallocs size is less than zero, or if its NULL,它必须返回 -1?
另外,返回 -1 是什么意思?我对C编程很陌生... 任何帮助将不胜感激!
【问题讨论】:
-
ptr = NULL将NULL分配给指针,这不是您想要的。 -
请:为了您自己,请正确格式化您的代码。
-
提示:
size_t *ptr = malloc(sizeof(size_t)*LEN);:动态分配内存以获得恒定大小 (LEN) 毫无意义。您可以改写size_t ptr[LEN];并删除free(ptr);。 -
scanf("%d",&ptr[i]);-->scanf("%zu", &ptr[i]);,i < ptr[i]-->i < LEN
标签: c computer-science