我需要分配一个 N 大小的数组并为其赋值,如果没有 int 索引我该怎么做?
这是我目前的代码,但它不能满足我的需要:
#include <stdlib.h>
#include <stdio.h>
int main() {
int *array;
int n;
printf("Size of array: ");
scanf("%d", &n);
array = (int*) malloc(n*sizeof(int));
if (array == NULL) printf("Memory Fail");
for(; *array; array++)
{
printf("Store:\n");
scanf("%d", &n);
*array = n;
}
for(; *array; array++)
{
printf("Print: %d\n",*array);
}
free(array);
return 0;
}
谢谢
for(; *array; array++);
你应该在最后删除 ;
- 此循环的迭代次数未定义,您将丢失一个指针
你应该这样做:
int *cur;
for(cur = array; cur < array+n; ++cur)
{
*cur = ...;
}
我是一名优秀的程序员,十分优秀!