回复 10楼 唏嘘草
自己去 google 以下动态数组就好了
回复 11楼 voidx
哦,看看去
#include <stdio.h> #include <stdlib.h> static int g_len; #define GET_ARRAY (get_array(0)) #define GET_N_INT(P) (((P)=get_array(0)) ? g_len : 0) int* get_array(int n) { static int *p; int a; if (scanf("%d", &a) == 1) { if (p = get_array(n+1)) p[n] = a; return p; } return (g_len=n) ? (int*)malloc(n*sizeof(int)) : NULL; } int main(void) { int i, n, *p; printf("\n读取您输入的整数,输入非整数停止输入。\n" "您可以#来停止输入: "); //p=GET_ARRAY; // p=输入的整数的地址——使后面代码知道输入的整数在哪。 //n=g_len; // n=刚刚输入的整数的个数——再次调用GET_ARRAY将改变g_len的值。 n=GET_N_INT(p); // 实现上面2行功能 printf("\n您共输入了%d个整数:\n", n); for (i=0; i<n; ++i) printf(" %d", p[i]); printf("\n"); free(p); // 要记得用完就释放。要养成这个习惯。 system("pause"); return 0; }
#include <stdlib.h> static int g_len; // 把数组首地址赋值给P,返回数组长度。 #define GET_INT_ARRAY(P) (((P)=get_array(0)) ? g_len : 0) int* get_array(int n) { static int *p; int a; if (scanf("%d", &a) == 1) { if (p = get_array(n+1)) p[n] = a; return p; } return (g_len=n) ? (int*)malloc(n*sizeof(int)) : NULL; } ...................... 要记得用free()释放内存,养成好习惯
#include <stdio.h> int main(void) { int rows, cols; scanf("%d%d", &rows, &cols); int array[rows][cols]; printf("Successfully created a variable-length array:\n"); printf("rows : %d\n", rows); printf("columns : %d\n", cols); return 0; }